保持管名python pandas分隔列名的最后2个元素

时间:2017-10-19 12:51:16

标签: python pandas

我有一个类似于

的DF
a|b|c|d   e|f|g|h   i|j|k|l
1         4         7
2         5         8
3         6         9

我想将其转换为

|c|d      g|h   k|l
1         4     7
2         5     8
3         6     9

当我使用下面的行时,它给我最后一个或第二个

test.rename(columns = lambda x: x.split("|")[-1] , inplace = True)
test.rename(columns = lambda x: x.split("|")[-2] , inplace = True)

但是当我按照以下方式执行时会执行但是当我执行test.head()时我会收到错误

test.rename(columns = lambda x: x.split("|")[-2:] , inplace = True)
  

TypeError:不可用类型:' list'

请告知修复。

1 个答案:

答案 0 :(得分:2)

使用join,因为选择最后2个值得到list

test.rename(columns = lambda x: '|'.join(x.split("|")[-2:]) , inplace = True)
print (test)
   c|d  g|h  k|l
0    1    4    7
1    2    5    8
2    3    6    9

另一种解决方案,谢谢Zero

test.columns = test.columns.str.split('|').str[-2:].str.join('|')