通过连接Pandas中的行来实现Dataframe标头

时间:2014-01-16 12:27:44

标签: python pandas

在Pandas中给出了这个示例数据框

df2 = pd.DataFrame({'a' : ['one', 'two', 'three', 'four', 'five', 'six', 'seven'],
                    'b' : ['x', 'y', 'y', 'x', 'y', 'x', 'x'],
                    'c' : ['abc', 'def', 'ghi', 'jkl', 'mno', 'pqr', 'stu']})

看起来像

       a  b    c
0    one  x  abc
1    two  y  def
2  three  y  ghi
3   four  x  jkl
4   five  y  mno
5    six  x  pqr
6  seven  x  stu

我想通过连接例如新建一个新的第2行和第2行3得到类似

的东西
   two_three y_y def_ghi
0    one     x   abc
1    two     y   def
2  three     y   ghi
3   four     x   jkl
4   five     y   mno
5    six     x   pqr
6  seven     x   stu

是否有类似矢量的实现?

非常感谢,Sascha

1 个答案:

答案 0 :(得分:2)

您可以沿着轴将str.join应用到数据帧切片,从而获得所需的结果。参见例如

>>> df.iloc[[1,2]].apply('_'.join, axis=0)
two_three    two_three
y_y                y_y
def_ghi        def_ghi
dtype: object

如果您想以这种方式命名列,请执行

>>> df.columns = df.iloc[[1,2]].apply('_'.join, axis=0)
>>> df
  two_three y_y def_ghi
0       one   x     abc
1       two   y     def
2     three   y     ghi
3      four   x     jkl
4      five   y     mno
5       six   x     pqr
6     seven   x     stu

[7 rows x 3 columns]