我想将以空格(“”)分隔的pandas数据框中的所有列连接起来。除了df ['newcolumn'] = df ['a'] +“” df ['b'] +“ ... ...
a b c combined
1 2 3 1 2 3
a d 3 a d 3
p 0 k p 0 k
答案 0 :(得分:2)
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)
答案 1 :(得分:0)
它将使最后一列成为所有值的列表,但是您可以使用以下内容:
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]
答案 2 :(得分:0)
我认为您的操作方式没有任何问题,但是另一种方式(也许是更多的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)
其中iloc中的0:3
仅是列索引[0,1,2]。通过选择适当的索引,您可以对任意选择的列进行此操作。