熊猫根据特定列合并/变淡数据框

时间:2020-03-19 11:04:14

标签: python pandas

我有以下数据示例,我正在尝试使用熊猫对其进行平坦化处理,我想通过Candidate_Name对其进行平坦化处理。

enter image description here

这是我的实现

df= df.merge(df,on=('Candidate_Name'))

但是我没有得到想要的结果。我想要的输出如下。因此,基本上所有与 Candidate_Name 相匹配的行都在同一行中,其中重复的列名可能后缀 _x

enter image description here

1 个答案:

答案 0 :(得分:1)

我认为您需要将GroupBy.cumcountDataFrame.unstack进行组合,然后将MultiIndex的第一个组的值统一化,并在其他级别上添加数字,以避免重复的列名:

df = df.set_index(['Candidate_Name', df.groupby('Candidate_Name').cumcount()]).unstack()
df.columns = [a if b == 0 else f'{a}_{b}' for a, b in df.columns]