如何按行连接包含字符串的多列?

EmE*_*mEs 5 python string-concatenation multiple-columns dataframe pandas

我有一系列特定的数据集,它们采用以下一般形式:

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']})
Run Code Online (Sandbox Code Playgroud)

tn列的数量(t0, t1, t2 ... tn因数据集而异,但始终小于 30。我的目标是合并每一行的tn列的内容,以便获得此结果(请注意,为了便于阅读,我需要保留元素之间的空格):

df['result'] = df.t0 +' '+df.t1+' '+df.t2+' '+ df.t3
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

到现在为止还挺好。这段代码可能很简单,但是一旦我收到另一个数据集,它就会变得笨拙和不灵活,其中tn列的数量增加了。这就是我的问题所在:

是否有其他语法可以跨多列合并内容?与数字列无关的东西,类似于:

df['result'] = ' '.join(df.ix[:,1:])
Run Code Online (Sandbox Code Playgroud)

基本上我想实现与下面链接中的 OP 相同的效果,但字符串之间有空格: R - 跨数据框的特定列按行连接

Max*_*axU 1

这是一个稍微替代的解决方案:

In [57]: df['result'] = df.filter(regex=r'^t').apply(lambda x: x.add(' ')).sum(axis=1).str.strip()

In [58]: df
Out[58]:
     n t0 t1 t2 t3   result
0   92  a  d  g  i  a d g i
1  916  b  e  h  j  b e h j
2  363  c  f  i  k  c f i k
Run Code Online (Sandbox Code Playgroud)