使用pandas和kwargs查询数据

2024-06-28 15:52:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试使用python pandas库查询数据。下面是数据的json示例。。。在

[
{
"name": "Bob", 
"city": "NY", 
"status": "Active"
}, 
{
"name": "Jake", 
"city": "SF", 
"status": "Active" 
}, 
{
"name": "Jill", 
"city": "NY", 
"status": "Lazy" 
},
{
"name": "Steve", 
"city": "NY", 
"status": "Lazy" 
}]

目标城市==我的查询状态==我的数据。 使用pandas数据帧的一种方法是。。。在

^{pr2}$

这是很好的工作,但我希望这是更抽象的。在

这样我就可以用**kwargs来过滤数据了?到目前为止,我在使用Pandas文档时遇到了麻烦。在

到目前为止我已经。。。。。在

 def main(**kwargs):

        readJson = pd.read_json(sys.argv[1])

        for key,value in kwargs.iteritems():
            print(key,value)
            readJson = readJson[readJson[key] == value]

        print readJson

if __name__ == '__main__':
    main(status="Lazy",city="NY")

再说一次…这个很好,但是我想知道有没有更好的方法。在


Tags: 数据方法keynamejsoncitypandasvalue
2条回答

**Kwargs与Pandas无关,它是Python的一个基本功能,您只需创建一个接受Kwargs的函数,并将变量Kwargs替换到Pandas Df query语句中(函数内部)。没有时间为您编写代码,但是阅读Python文档应该会让您有所收获。Pandas只是Python系统的一个重要部分,当您开始组合多个部分时,您需要熟悉这些部分。在

我不认为你的方法有什么问题。如果您想使用df.query,您可以这样做,尽管我认为它的可读性较差。在

expr = " and ".join(k + "=='" + v + "'" for (k,v) in kwargs.items())
readJson = readJson.query(expr)

相关问题 更多 >