2016-05-05 15 views
0

ユーザーIDキーを使用して同じ列/列名で2つのデータフレーム(a、b)を結合しています。それが作成されるようにします。次のコマンドは、私が使用したコマンドです。Dataframe - Pandasのすべての列の列名の最後の2文字を削除します

a.join(b,how='inner', on='userId',lsuffix="_1") 

この接尾辞を使用しないとエラーになります。しかし、他の分析を実行しているときに問題を引き起こしているため、列名を変更する必要はありません。ですから、結果のデータフレームのすべての列名からこの "_1"文字を削除します。誰でも私にパンダのデータフレームのすべての列の名前の最後の2文字を削除する効率的な方法を提案できますか?

おかげ

+0

列の名前を変更することはできますか? –

+0

@JoeR私は、約76列と50のそのようなデータフレームを持っています。手動で行うのは解決策ではありません! – Observer

答えて

2

このスニペットは、仕事を得る必要があります。

df.columns = pd.Index(map(lambda x : str(x)[:-2], df.columns)) 

編集:これはそれを両方のケースで

df.rename(columns = lambda x : str(x)[:-2]) 

を行うには良い方法である、我々がやっているすべての列を反復していくつかの関数を適用しています。この場合、関数は何かを文字列に変換し、最後の2文字まですべてを取ります。

これを行うにはいくつかの方法があります。

+0

@Alexanderが指摘しているように、これを機能させるためには一意の列名が必要です。すべての非結合キーが固有のものだった場合は、接尾辞を除外するだけです。重複する名前があり、「結合」の概念が定義されていないためにエラーが発生した場合。混乱の原因となる他の問題(結合をいつ、どのように使用するかなど)が発生しているように見えるので、いくつかのサンプルデータを投稿することができます。 – Thtu

関連する問題