首页 > 解决方案 > 在python中拆分数据框

问题描述

我有一个数据框 df=

    Type   ID      QTY_1   QTY_2  RES_1   RES_2
    X       1       10      15      y       N
    X       2       12      25      N       N
    X       3       25      16      Y       Y
    X       4       14      62      N       Y
    X       5       21      75      Y       Y
    Y       1       10      15      y       N
    Y       2       12      25      N       N
    Y       3       25      16      Y       Y
    Y       4       14      62      N       N
    Y       5       21      75      Y       Y

我想要两个不同数据帧的结果数据集,其中 QTY 在各自的 RES 中有 Y。以下是我的预期结果

df1= 

Type   ID      QTY_1   
X       1       10
X       3       25
X       5       21
Y       1       10 
Y       3       25
Y       5       21

df2 = 

Type   ID      QTY_2
X       3       16  
X       4       62
X       5       75
Y       3       16
Y       5       75

标签: pythonpandas

解决方案


你可以这样做:

df1 = df[['Type', 'ID', 'QTY_1']].loc[df.RES_1.isin(['Y', 'y'])]

df2 = df[['Type', 'ID', 'QTY_2']].loc[df.RES_2.isin(['Y', 'y'])]

或者

df1 = df[['Type', 'ID', 'QTY_1']].loc[df.RES_1.str.lower() == 'y']

df2 = df[['Type', 'ID', 'QTY_2']].loc[df.RES_2.str.lower() == 'y']

输出:

>>> df1
  Type  ID  QTY_1
0    X   1     10
2    X   3     25
4    X   5     21
5    Y   1     10
7    Y   3     25
9    Y   5     21
>>> df2
  Type  ID  QTY_2
2    X   3     16
3    X   4     62
4    X   5     75
7    Y   3     16
9    Y   5     75

推荐阅读