我有一个Pandas数据框,如下所示:
Col1 Col2 Col3
1 A 1
1 B 4
1 C 5
1 D 2
2 A 3
2 B 3
2 C 5
2 D 1
3 A 4
3 B 5
3 C 2
3 D 3
我面临着以下任务的问题:
所以结果如下:
Dataframe1
Col1 Col2 Col3
1 B 4
1 D 2
2 A 3
2 B 3
3 A 4
3 B 5
Dataframe2
Col1 Col2 Col3
1 A 1
1 C 5
2 C 5
2 D 1
3 C 2
3 D 3
答案 0 :(得分:1)
你可以做到
In [230]: dfs = {n: g for n, g in df.groupby(df.groupby('Col1').cumcount() % 2)} # or // 2
In [231]: dfs[0]
Out[231]:
Col1 Col2 Col3
0 1 A 1
2 1 C 5
4 2 A 3
6 2 C 5
8 3 A 4
10 3 C 2
In [232]: dfs[1]
Out[232]:
Col1 Col2 Col3
1 1 B 4
3 1 D 2
5 2 B 3
7 2 D 1
9 3 B 5
11 3 D 3