Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用pandas和kwargs查询数据_Python_Json_Pandas_Data Analysis_Keyword Argument - Fatal编程技术网

Python 使用pandas和kwargs查询数据

Python 使用pandas和kwargs查询数据,python,json,pandas,data-analysis,keyword-argument,Python,Json,Pandas,Data Analysis,Keyword Argument,我正在尝试使用python库查询数据。下面是数据的json示例 [ { "name": "Bob", "city": "NY", "status": "Active" }, { "name": "Jake", "city": "SF", "status": "Active" }, { "name": "Jill", "city": "NY", "status": "Lazy" }, { "name": "Steve", "city": "NY", "status": "L

我正在尝试使用python库查询数据。下面是数据的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" 
}]
我的目标是查询city==NY和status==Lazy的数据。 使用熊猫数据帧的一种方法是

df = df[(df.status == "Lazy") & (df.city == "NY")]
这是很好的工作,但我想这是更抽象的

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

到目前为止我已经做了

 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")

再说一遍……这很好,但我想知道是否有更好的方法

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

我认为您的方法没有任何错误。如果您想使用df.query,您可以这样做,尽管我认为它可读性较差

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

是的,我知道**kwargs是什么。。。我在试着开始工作时遇到了麻烦。无论如何,感谢您的帮助。请告诉我们您尝试了什么,可能会遇到什么错误,然后我们可以提供帮助。FWIW看起来您对DF查询方法和Pandas功能(Json读取除外)一点也不感兴趣,这很好,但这就是为什么展示你所做的很重要的原因:-我自己多次遇到这个问题,并决定一劳永逸地解决它。。。看,它基本上满足了你的要求。