64

スペースを含まないパンダ列をインポートまたは作成すると、次のようにアクセスできます。

from pandas import DataFrame

df1 = DataFrame({'key': ['b', 'b', 'a', 'c', 'a', 'a', 'b'],
                 'data1': range(7)})

df1.data1

それは私のためにそのシリーズを返すでしょう。ただし、その列の名前にスペースが含まれている場合、そのメソッドを介してアクセスすることはできません。

from pandas import DataFrame

df2 = DataFrame({'key': ['a','b','d'],
                 'data 2': range(3)})

df2.data 2      # <--- not the droid I'm looking for.

.xs()を使用してアクセスできることはわかっています。

df2.xs('data 2', axis=1)

別の方法が必要です私はそれを狂ったようにグーグルで検索しました、そしてそれをグーグルで検索する他の方法を考えることができません。SOで「column」と「string」と「pandas」を含む96のエントリをすべて読みましたが、以前の回答は見つかりませんでした。これが唯一の方法ですか、それとももっと良いものがありますか?

4

6 に答える 6

74

古い投稿ですが、興味深いかもしれません: アイデア (これは破壊的ですが、すばやく汚れたい場合はうまくいきます) は、アンダースコアを使用して列の名前を変更することです:

df1.columns = [c.replace(' ', '_') for c in df1.columns]
于 2015-05-28T18:42:30.483 に答える