创建一个新列,该列是所有前面列的串联

我想连接由空格(“”)分隔的熊猫数据框中的所有列。除了 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


慕仙森
浏览 171回答 3
3回答

慕勒3428872

lambda 可能有用 axis=1import pandas as pddf = 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)

翻阅古今

我不认为你这样做的方式有什么问题,但另一种方式(也许更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:3in iloc 只是列索引 [0,1,2]。您可以通过选择适当的索引对任意选择的列执行此操作。

桃花长相依

它将使最后一列成为所有值的列表,但您可以使用以下内容:df['combined'] = df.apply(lambda x: x.tolist(), axis=1)输出如下:a   b   c   combined1   2   3   [1,2,3]a   d   3   [a,d,3]p   0   k   [p,0,k]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python