传递我学到的新信息应用,这是另一个问题的一部分:Unable to query a local variable in pandas 0.14.0
感谢并感谢用户@choldgraf。我以不同方式应用上述链接中的答案。
目标:在查询中使用变量作为列名
失败的例子:
import pandas as pd
fooframe = pd.DataFrame({'Size':['Large', 'Medium', 'Small', 'Tiny'], 'Color':[1, 2, 3, 4]})
myvar = 'Size'
subframe = fooframe.query("myvar == 'Large'")
上面的代码会为' myvar'。
返回一个关键错误import pandas as pd
fooframe = pd.DataFrame({'Size':['Large', 'Medium', 'Small', 'Tiny'], 'Color':[1, 2, 3, 4]})
myvar = 'Size'
subframe = fooframe.query("@myvar == 'Large'")
上面的代码添加" @"在查询中myvar之前引用myvar作为局部变量。但是,代码仍会返回错误。
答案 0 :(得分:3)
感谢并感谢用户@choldgraf。我在另一篇文章(Unable to query a local variable in pandas 0.14.0)中使用了他提到的技术,不是列中的值,而是列名。
变量可以用作pandas查询中的列名,方法是将其插入查询字符串中,如下所示:
import pandas as pd
fooframe = pd.DataFrame({'Size':['Large', 'Medium', 'Small', 'Tiny'], 'Color':[1, 2, 3, 4]})
myvar = 'Size'
subframe = fooframe.query("{0} == 'Large'".format(myvar))