首页 > 解决方案 > 我想根据条件将 Pandas 数据框拆分为 2 个数据框

问题描述

我有一个 4 列的基本数据框。

 column_A column_B  column_C   id  
0       1       1      anna    123
1       2       1      anna      7
2      30       2      bob      42
2      20       2      bob      12
3      10       3      charlie   1
4     100       3      david     2

我想将其拆分为具有以下属性的 2 个不同的数据框。

数据框 1:

 column_A column_B  column_C   id  
0       1       1      anna    123
1       2       1      anna      7
2      30       2      bob      42
2      20       2      bob      12

其中column_B column_C 中的两个值都匹配

数据框 2:

  column_A column_B  column_C   id
3      10       3      charlie   1
4     100       3      david     2

其中只有column_B 中的值匹配

标签: pythonpandaspandas-groupby

解决方案


您可以检查重复项。

In [200]: dfs = {i: n for i, n in df.groupby(
                    df.duplicated(subset=['column_B', 'column_C'], keep=False))}

In [201]: dfs[True]
Out[201]:
   column_A  column_B column_C   id
0         1         1     anna  123
1         2         1     anna    7
2        30         2      bob   42
2        20         2      bob   12

In [202]: dfs[False]
Out[202]:
   column_A  column_B column_C  id
3        10         3  charlie   1
4       100         3    david   2

推荐阅读