【发布时间】:2017-01-27 01:32:31
【问题描述】:
我有一系列特定的数据集,一般形式如下:
import pandas as pd
import random
df = pd.DataFrame({'n': random.sample(xrange(1000), 3), 't0':['a', 'b', 'c'], 't1':['d','e','f'], 't2':['g','h','i'], 't3':['i','j', 'k']})
tn 列的数量(t0, t1, t2 ... tn)因数据集而异,但始终为 tn 列的内容,以便实现这个结果(请注意,为了便于阅读,我需要保留元素之间的空格):
df['result'] = df.t0 +' '+df.t1+' '+df.t2+' '+ df.t3
到目前为止一切顺利。这段代码可能很简单,但一旦我收到另一个数据集,它就会变得笨拙和不灵活,其中 tn 列的数量会增加。这就是我的问题所在:
是否有任何其他语法可以跨多个列合并内容?与数字列无关的东西,类似于:
df['result'] = ' '.join(df.ix[:,1:])
基本上我想实现与下面链接中的 OP 相同,但字符串之间有空格: R - concatenate row-wise across specific columns of dataframe
【问题讨论】:
-
完美! Russ 提出的解决方案既灵活又简单。感谢@IanS 指出答案!
-
对于两列,这个答案 [stackoverflow.com/a/36911306/3903767] on the same question linked by @IanS 使用 .str.cat 的速度要快得多
标签: python pandas dataframe multiple-columns string-concatenation