0
我正在使用2個變量的DataFrame查詢。 第一個變量是列標籤,第二個是值列表。 我想要做的是選擇該列中包含該列表中的值的所有行。奇怪的是,如果我寫的列標籤作爲字符串沒有錯誤,而引用該列標籤變量提供了以下錯誤:熊貓DataFrame:查詢變量
Traceback (most recent call last):
File "C:\Python\Python36\lib\site-packages\pandas\indexes\base.py", line 2134, in get_loc
return self._engine.get_loc(key)
File "pandas\index.pyx", line 132, in pandas.index.IndexEngine.get_loc (pandas\index.c:4433)
File "pandas\index.pyx", line 151, in pandas.index.IndexEngine.get_loc (pandas\index.c:4238)
File "pandas\index.pyx", line 388, in pandas.index.Int64Engine._check_type (pandas\index.c:8171)
KeyError: False
這是工作代碼:
rhs_values_list = df1["RHS"].tolist()
query = "shoe_size in @rhs_values_list"
result_set = df2.query(query)
而這種上升上述錯誤:
rhs_values_list = df1["RHS"].tolist()
col = "shoe_size"
query = "@col in @rhs_values_list"
result_set = df2.query(query)
是不是有什麼毛病查詢的第二個版本?
使用像這樣的字符串插值的FYI通常不是一個好主意。理想情況下,您希望使用允許參數化查詢的庫,並將清理任何變量。 – Solaxun
在這種情況下,SQL注入不是一個問題,因爲您無法將表格變異查詢傳遞給'df.query'。 –
大家好,熊貓讓你回來:) – Solaxun