私は使用文字列変数
df.loc[(origFull['abc'] == 111)]
を使用している場合、それは当然のことながら動作します。
はその後
test = '(origFull[\'abc\'] == 111)'
df.loc[@test]
または
df.loc['@test']
どちらも働きました。
私は使用文字列変数
df.loc[(origFull['abc'] == 111)]
を使用している場合、それは当然のことながら動作します。
はその後
test = '(origFull[\'abc\'] == 111)'
df.loc[@test]
または
df.loc['@test']
どちらも働きました。
いくつかのことが間違っている:
1:あなたは、テスト値(正確にはブール値)になりたいです、それらの周りに一重引用符を追加すると、test
は文字列になります。代わりに、次の操作を行います。
test = origFull['abc'] == 111
2:@
記号は、それがデコレータのために使われている時に除外、pythonのための有効な構文ではありません。 testを変数として使用するには、@
を付けずにtest
と書いてください。
df.loc[test]
テストを定義するときに引用符を外してください。
locの内部では、本質的にブール変数を作成しています。だからブール値に等しいテストを設定し、ブール指標としてそれを使用します。
test = (origFull['abc'] == 111)
df.loc[test]
バックスラッシュを外しても機能します。最初にこの質問に答えてくれて、私を正しい方向に導いてくれてありがとう、ありがとう! – Windtalker
はい、申し訳ありませんが、コピーして貼り付けてバックスラッシュを見逃しました。 – Reen
.query()
の方法をお探しですか?
test = "abc == 111"
df.query(test)
実際には.locですが、私は答えを得ました。とにかくありがとう – Windtalker
実際、私はテスト変数を使って文を表現したいのですが、正しいですが、一重引用符を追加する必要はありません。ありがとうございました! – Windtalker