我的目标是获得列A的重复组,并将它们打印/提取到一个新的数据框中,最终将每个新数据框打印成csv。
my current dataframe:
列A | 列B | 2 |
---|---|
2 | |
3 | |
2 | |
3 | |
4 | |
2 | |
2 | |
2 | |
2 | |
3 |
可以遍历列A的唯一值,也可以显示列A特定值的数据
代码:
[df[df['ColA']==i] for i in set(df.ColA.values)]
输出;
[ ColA ColB
0 A 2
1 A 2
2 A 3,
ColA ColB
6 C 2
7 C 2,
ColA ColB
3 B 2
4 B 3
5 B 4,
ColA ColB
8 D 2
9 D 2
10 D 3]
g = df.groupby('column A')
dup_chk = df.loc[df['column A'].eq('A'), 'column B']
out = [g.get_group(x)[lambda x: x['column B'].isin(dup_chk)] for x in g.groups]
out
(list of dataframe)
[ column A column B
0 A 2
1 A 2
2 A 3,
column A column B
3 B 2
4 B 3,
column A column B
6 C 2
7 C 2,
column A column B
8 D 2
9 D 2
10 D 3]
使用
groupby
函数对一行中的每个重复元素进行分组使用for
循环遍历每个组
grouped_df = df.groupby('column A')
for group in grouped_df:
print(group)