Python 使用pandas和kwargs查询数据
我正在尝试使用python库查询数据。下面是数据的json示例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
[
{
"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读取除外)一点也不感兴趣,这很好,但这就是为什么展示你所做的很重要的原因:-我自己多次遇到这个问题,并决定一劳永逸地解决它。。。看,它基本上满足了你的要求。