熊猫,将值集中到第一行每列的第一个单元格中列出



我需要集中值以在第一行每列的第一个单元格中列出

我的数据框:

df = pd.DataFrame({
'A':['one','one','two'],
'B':[2,np.nan,2],
'C':['main','main','main']
})
print(df)
A    B     C
0  one  2.0  main
1  one  NaN  main
2  two  2.0  main

预期输出:

A              B           C
0  one,one,two  2.0,2.0  main,main,main

对于一列,这不是问题,因为我可以使用tolist()但在这些情况下,我尝试使用:

df=df.apply(lambda x: ','.join(x.dropna().values.tolist()), axis=1)

从本主题:

用分隔符将单元格连接成一个字符串 熊猫蟒蛇 但在那里,它不是一个列表,而是一个字符串,无论如何我收到:TypeError: ('sequence item 1: expected str instance, float found', 'occurred at index 0')

您可以将列转换为字符串并连接:

df.agg(lambda x: ','.join(x.dropna().astype(str)))

输出:

A       one,one,two
B           2.0,2.0
C    main,main,main
dtype: object

要获取数据帧,您可以使用.to_frame().T链接它:

df.agg(lambda x: ','.join(x.dropna().astype(str))).to_frame().T

给你

A        B               C
0  one,one,two  2.0,2.0  main,main,main

相关内容

最新更新