我想使用.query方法通过变量过滤数据帧中的列,但它不能用于变量,只能用于字符串。有人知道如何使用变量吗?非常感谢。
import pandas as pd
var="A"
source = {'COL1': ['A','B','C'], 'COL2': ['D','E','F']}
dfsource=pd.DataFrame(source)
print(dfsource)
df2=dfsource.query('COL1=="A"') #Example, this works filtering for value A but not what I need.
df3=dfsource.query('COL1'==var)
print(df2)
print(df3)
使用@
:
import pandas as pd
var = "A"
source = {"COL1": ["A", "B", "C"], "COL2": ["D", "E", "F"]}
dfsource = pd.DataFrame(source)
print(dfsource)
df2 = dfsource.query(
'COL1=="A"'
)
df3 = dfsource.query("COL1 == @var") # <-- @
print(df2)
print(df3)
打印:
COL1 COL2
0 A D
1 B E
2 C F
COL1 COL2
0 A D
COL1 COL2
0 A D