2016-08-16 13 views
8

私はそれに多くの列を持つデータフレームを持っています。今私は特定の列だけを選択したい。選択したい列の名前をすべてPythonリストに保存しました。このリストに従ってデータフレームをフィルタリングしたいのです。python pandas列名のリストを介してデータフレームから列を選択する

私がやろうとしてきた:

df_new = df[[list]] 

リストは、私が選択したいすべての列名が含まれています。

TypeError: unhashable type: 'list' 

この1上の任意のヘルプ:

は、しかし、私はエラーを取得しますか?

答えて

8

あなたは1 []削除することができます。

df_new = df[list] 

も良く、例えば、listとして他の名前を使用していますL

df_new = df[L] 

それは作業のように見える、私はそれを簡略化するだけで試してみてください。

L = [] 
for x in df.columns: 
    if not "_" in x[-3:]: 
     L.append(x) 
print (L) 

List comprehension

print ([x for x in df.columns if not "_" in x[-3:]]) 
+0

すでにそれを試してみました。しかし、リスト内の名前が「索引にはない」というエラーが表示されます。S – AaronDT

+0

それでは一致しません。 'list'をどうやって作りますか? 'print df.columns'とは何ですか? – jezrael

+0

私はすべてのヘッダー名を最初に受け取り、header_namesに保存するために次のコードを使用しました。次に、特定の基準に従ってヘッダ名をフィルタリングしています。 header_namesにおけるxのheader_names =リスト(df.columns.values) : のy = xの[-3:] "_" であればyの: パス他 : L.append(X) – AaronDT

関連する問題