gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 23:46:55 27 4
gpt4 key购买 nike

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

我的数据框:

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)
从这个话题:

Concatenate cells into a string with separator pandas python
但在那里,它不是列表而是字符串,无论如何我收到: 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

关于 Pandas ,将值集中到第一行每列的第一个单元格中列出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62133871/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com