2017-10-19 3 views
1

私は、以下の行を使用する場合パイプのpythonパンダによって区切られた列名の最後の2つの要素をキープ

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

に見えるように、それを変換したい

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

のように見えるDFを持っていますそれは最後の1

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

私の最後または第二を与えるが、それが実行される以下のように私はそれを与えるとき、私はを行うとき私は修正にお知らせください

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

TypeError: unhashable type: 'list'

エラーが発生します。

答えて

2

選択し、最後の2つの値がlist得るために使用joinは、:

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('|') 
+0

は、はい、それは働いたありがとう –

+1

や 'df.columns.str.split( '|')。str [-2:]。str.join( '|') 'は列リストを持ちます。 – Zero

+1

はい解決策yゼロもうまく働いた –

関連する問題