2017-09-11 10 views
0

データフレーム 'df'に 'Call_ID'列があり、値の1つに '888'が含まれています。私は次の変数を持っています:キーとして連結文字列を渡すときのパンダのKeyError

c = 'Call_ID' 
v = '888' 
q = 'df[c] == v' 

df[df[c] == v]はうまくいきます。しかし、df[q]は私にキーエラーを与えています。助言がありますか ?

答えて

1

df[q]は、'df[c] == v'という名前の列を探しています。 df[c] == vと等価ではありません。なぜなら最初のものは文字列であり、2番目のものはPython式なのです。

1

ブールインデックスはではありません。は文字列式をサポートしていませんし、評価もしていません。代わりにqueryが必要になります。また

df.query('Call_ID == @v') 

`df.query( '{} == "{}"' フォーマット(C、Vを使用して
df.query('{} == "{}"'.format(c, v)) 

df 

    a b c 
0 1 1 a 
1 1 2 b 
2 1 3 c 
6 2 1 d 
7 2 2 e 
9 2 2 x 
10 2 1 x 

df.query("c == 'x'") 

    a b c 
9 2 2 x 
10 2 1 x 
+0

。 )) '私は構文エラーを与えている – Kshitij

+0

@Kshitijあなたの引用符をチェック.... –

+0

@Kshitijそれはあなたに文法エラーを与えた場合、あなたは明らかにそれを間違ってコピーしましたか?あなたが見ることができるように、これは私のために働く。 –

関連する問題