我想连接由空格(“”)分隔的熊猫数据框中的所有列。除了 df['newcolumn'] = df['a'] + " " df['b'] + " " ...a b c combined1 2 3 1 2 3a d 3 a d 3p 0 k p 0 k
3 回答

慕勒3428872
TA贡献1848条经验 获得超6个赞
lambda 可能有用 axis=1
import pandas as pd
df = pd.DataFrame({'a':['1','a','p'],
'b':[2,'d',0],
'c':[3,3,'k']})
df=df.astype(str)
df['combined']=df[df.columns].apply(lambda x: ' '.join(x), axis=1)

翻阅古今
TA贡献1780条经验 获得超5个赞
我不认为你这样做的方式有什么问题,但另一种方式(也许更pythonic?)是:
df['newcolumn'] = df[['a', 'b', 'c']].apply(lambda x: ' '.join(x), axis=1)
使其更适用于大型 df:
df['newcolumn'] = df.iloc[:,0:3].apply(lambda x: ' '.join(x), axis=1)
其中0:3
in iloc 只是列索引 [0,1,2]。您可以通过选择适当的索引对任意选择的列执行此操作。

桃花长相依
TA贡献1860条经验 获得超8个赞
它将使最后一列成为所有值的列表,但您可以使用以下内容:
df['combined'] = df.apply(lambda x: x.tolist(), axis=1)
输出如下:
a b c combined
1 2 3 [1,2,3]
a d 3 [a,d,3]
p 0 k [p,0,k]
添加回答
举报
0/150
提交
取消