在 Pandas 中将字符串的数据框列合并为一列

pbu*_*pbu 4 python pandas

我在包含这样的文本的数据框中(从 CSV 导入)中有列。

"New york", "Atlanta", "Mumbai"
"Beijing", "Paris", "Budapest"
"Brussels", "Oslo", "Singapore"
Run Code Online (Sandbox Code Playgroud)

我想将所有列折叠/合并为一列,就像这样

New york Atlanta
Beijing Paris Budapest
Brussels Oslo Singapore
Run Code Online (Sandbox Code Playgroud)

如何在熊猫中做到这一点?

ayh*_*han 5

更快(但更丑)的版本是.cat

df[0].str.cat(df.ix[:, 1:].T.values, sep=' ')

0    New york Atlanta Mumbai
1     Beijing Paris Budapest
2    Brussels Oslo Singapore
Name: 0, dtype: object
Run Code Online (Sandbox Code Playgroud)

在更大的 (10kx5) DataFrame 上:

%timeit df.apply(" ".join, axis=1)
10 loops, best of 3: 112 ms per loop

%timeit df[0].str.cat(df.ix[:, 1:].T.values, sep=' ')
100 loops, best of 3: 4.48 ms per loop
Run Code Online (Sandbox Code Playgroud)