2024-04-19 23:03:59 发布
网友
我想把数据框中的所有列连接起来,用空格(“”)隔开。除了df['newcolumn']=df['a']+“”df['b']+“”之外,还有其他更具python风格的方法吗。。。你知道吗
a b c combined 1 2 3 1 2 3 a d 3 a d 3 p 0 k p 0 k
lambda可以沿着axis=1使用
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)
我不认为你做这件事的方式有什么问题,但是有一种不同的方式(也许更像Python?)将是:
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]。通过选择适当的索引,可以对任意选择的列执行此操作。你知道吗
0:3
它将使最后一列成为所有值的列表,但您可以使用以下选项:
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]
lambda
可以沿着axis=1
使用我不认为你做这件事的方式有什么问题,但是有一种不同的方式(也许更像Python?)将是:
为了使其更适用于大型df:
其中iloc中的
0:3
只是列索引[0,1,2]。通过选择适当的索引,可以对任意选择的列执行此操作。你知道吗它将使最后一列成为所有值的列表,但您可以使用以下选项:
输出如下:
相关问题 更多 >
编程相关推荐