我有一个熊猫数据框,如下所示。该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)并删除行,但是我的所有努力只会使此表变得更糟。有什么想法吗?
答案 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()))