熊猫在连接数据帧列表后获得唯一索引

时间:2020-10-28 16:32:49

标签: python pandas

问题::我有以下pandas数据帧对象,该对象最初是根据数据帧列表进行连接的(每个数据帧df_*携带check_*信息)。下面的数据框仅是一个示例,实际的包含更多(阶段,单位)组合(我不知道先验有多少)。

目标:阶段和单位应为带有check_*值的索引。因此,基本上,对于每个阶段,单位组合我都希望有一个唯一的行,其中包含check_*的信息。

任何想法该怎么做?非常感谢!

# Current Situation
stage   unit    check_1 check_2 check_3 check_4
A       min     NaN     NaN    120      NaN
B       min     NaN     NaN    210      NaN
A       sec     NaN     NaN    3        NaN
B       sec     NaN     NaN    3        NaN
B       min     NaN     NaN    NaN      0.8
A       min     NaN     NaN    NaN      0.3


# Target
stage   unit    check_1 check_2 check_3 check_4
A       min     NaN     NaN    120      0.3
B       min     NaN     NaN    210      0.8
A       sec     NaN     NaN    3        NaN
B       sec     NaN     NaN    3        NaN

2 个答案:

答案 0 :(得分:0)

您可以使用df.groupbysum

check_cols = df.filter(like='check_', axis=1).columns.tolist()
res = df.fillna(0).groupby(['stage', 'unit'])[check_cols].sum()

答案 1 :(得分:0)

尝试

df = df.groupby(['stage', 'unit'], as_index=False).first()