在单个数据框上合并具有相同索引的多行?
我对python和pandas相当陌生,所以对于初学者的问题感到抱歉,但是我还没有find解决scheme来完成这个简单的任务。
dataframe:
Org Data1 Data2 1 1234 Win 1 2345 Win 2 Loss 3 3456 Win 3 4567 Win
我一直在尝试使用这个groupby并应用lambda
df.groupby(["Org"])["Data1", "Data2"].apply(lambda x: ';;'.join(x.astype(str)))
由于结果是唯一的,所以不能正常工作
Org 1 Data1;;Data2 2 Data1;;Data2 3 Data1;;Data2
这是我想实现的:
Org Data1 Data2 1 1234 ;; 2345 Win ;; Win 2 NaN Loss 3 3456 ;; 4567 Win ;; Win
Org表示我想用来对其进行分组的定义的索引。 同样的组织对Data1和Data2的答案“1 2 3”应该到excel中的同一个单元格中,然后我想把它作为一个全新的excel文件打印出来。
任何人都可以帮助我这个相当简单(但对我来说有点困难)的问题?
你真的很接近,只需要用agg
:
df = df.groupby(["Org"])["Data1", "Data2"].agg(lambda x: ';;'.join(x.astype(str))) print (df) Data1 Data2 Org 1 1234.0;;2345.0 Win;;Win 2 nan Loss 3 3456.0;;4567.0 Win;;Win