在熊猫中分组和删除不必要的行

时间:2018-08-13 14:17:22

标签: python pandas merge grouping

我有一个熊猫数据框,如下所示。该DF包含重要信息,但有许多不必要的行。

DF_Old =

id    tID       word   rX     rY     R
52    6         X      L-18   nan    L
52    6         X      L-12   nan    L
52    6         X      L-10   nan    L
52    7         A      N      N      nan
52    8         B      W-7    O-6    W,O
52    8         B      W-7    nan    W
52    8         B      nan    O-6    O
52    8         B      nan    nan    nan
52    8         C      W-7    O-6    W,O
52    8         C      W-7    nan    W
52    8         C      nan    O-6    O
52    8         C      nan    nan    nan
52    9         D      nan    nan    nan

rX包含从左到右的值,而rY包含从右到左的值。在R列中,这些值被合并而数字被省略。

某些行包含部分信息,可以节省下来。但是,我根本无法通过DF.dropna(thresh=2)或类似方法删除它们,因为我丢失了其他(重要)行,例如表中的最后一行。我想要的是一个类似于DF_New的DataFrame:

DF_New =

id    tID       word   r                  R
52    6         X      L-18, L-12, L-10   L
52    7         A      N                  N
52    8         B      W-7, O-6           W,O
52    8         C      W-7, O-6           W,O
52    9         D      N                  N

我认为需要某种合并(例如DF.groupby)并删除行,但是我的所有努力只会使此表变得更糟。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

很难从所需的输出中重构所需的逻辑,但这似乎正是您想要的

DF_Old= DF_Old.replace(np.nan, 'nan', regex=True)

DF_Old.groupby(['tID', 'word'])['rX'].apply(list)

DF_Old(['tID', 'word'])[['rX', 'rY']].agg(lambda x : ','.join(x.unique()))