假设有以下数据框:
期望输出为:
我已经成功地以以下方式完成了这个任务:
问题是这种方法没有保留我真正需要的第一列。我无法让
df = pd.DataFrame(
{
'col 1': ['A', 'A', 'B', 'B', 'C'],
'col 2': ['c2', 'd2', 'e2', 'f2', 'g2'],
'col 3': ['c3', 'd3', 'e3', 'f3', 'g3'],
'col 4': ['c4', 'd4', 'e4', 'f4', 'g4'],
}
)
期望输出为:
col 1 col 2 col 3
A c2;d2 c3;d3
B e2;f2 e3;f3
C g2 g3
我已经成功地以以下方式完成了这个任务:
df = df.groupby('col 1').transform( lambda x: ';'.join(x)).drop_duplicates()
问题是这种方法没有保留我真正需要的第一列。我无法让
apply
起作用。我尝试了像这样的方法,但在groupby
之后好像不起作用。apply(lambda x: '*'.join(x.dropna().values.tolist()), axis=1)
dict
传递给你的DF - DF只会看到该键的最后一次出现... - Jon Clements