我有一个像:
df a b
c d e f
1 . . . .
2 . . . .
3 . . . .
4 . . . .
并希望将其作为结果:
df
ac ad be bf
1 . . . .
2 . . . .
3 . . . .
4 . . . .
答案 0 :(得分:4)
您可以在列级别上使用地图和zip / join:
In [11]: df
Out[11]:
a b
c d e f
1 . . . .
2 . . . .
3 . . . .
4 . . . .
In [12]: df.columns.map(lambda x: "".join(*zip(*x)))
Out[12]: array(['ac', 'ad', 'be', 'bf'], dtype=object)
In [13]: df.columns = df.columns.map(lambda x: "".join(*zip(*x)))
In [14]: df
Out[14]:
ac ad be bf
1 . . . .
2 . . . .
3 . . . .
4 . . . .
答案 1 :(得分:4)
df.columns.map("".join)
就足够了,如下:
In [12]: df
Out[12]:
A B
C D E F G H
0 0 1 2 3 4 5
1 0 1 2 3 4 5
2 0 1 2 3 4 5
3 0 1 2 3 4 5
4 0 1 2 3 4 5
5 0 1 2 3 4 5
In [13]: df.columns = df.columns.map("".join)
In [14]: df
Out[14]:
AC AD AE BF BG BH
0 0 1 2 3 4 5
1 0 1 2 3 4 5
2 0 1 2 3 4 5
3 0 1 2 3 4 5
4 0 1 2 3 4 5
5 0 1 2 3 4 5