我有以下数据示例,我正在尝试使用熊猫对其进行平坦化处理,我想通过Candidate_Name对其进行平坦化处理。
这是我的实现
df= df.merge(df,on=('Candidate_Name'))
但是我没有得到想要的结果。我想要的输出如下。因此,基本上所有与 Candidate_Name 相匹配的行都在同一行中,其中重复的列名可能后缀 _x
答案 0 :(得分:1)
我认为您需要将GroupBy.cumcount
与DataFrame.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]