Skip to main content
 首页 » 编程设计

python之我想根据条件将 Pandas Dataframe 分成 2 个数据帧

2025年05月04日18wayfarer

我有一个包含 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 中的只有值匹配

请您参考如下方法:

您可以检查重复项。

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