如何折叠列并将值覆盖为一行

时间:2020-02-14 21:43:21

标签: python pandas

我正在尝试将行折叠成一行(姓,名,ID),同时,只要有具有True的列/行,就用True覆盖False。 True是系统生成的标志,要求我们更深入地研究该记录。

df = pd.DataFrame({'ID':[1, 1,2, 3,3],'LastName':['Cardinal','Cardinal', 'BlueJay', 'Robin','Robin'], 'FirstName':['Red', 'Red','Bluey', 'Round','Round'], 'French':[True, False,False,False, True], 'Flying':[False,True, True, True, False]})

enter image description here 我不知道从哪里开始。在这种情况下,我们不能使用拆分应用组合的思维方式,因为我们要同时替换列和行。分组,更新,combining_first已退出。此外,还有100多个列...

所需的输出: df2 = pd.DataFrame({'ID':[1, 2, 3],'LastName':['Cardinal', 'BlueJay', 'Robin'], 'FirstName':['Red','Bluey','Round'], 'French':[True, False, True], 'Flying':[True, True, True]})

enter image description here

谢谢!

1 个答案:

答案 0 :(得分:2)

尝试any

df.groupby(['ID','LastName','FirstName'], as_index=False).any()

输出:

   ID  LastName FirstName  French  Flying
0   1  Cardinal       Red    True    True
1   2   BlueJay     Bluey   False    True
2   3     Robin     Round    True    True