Jua*_*los 6 python dictionary pandas
我试图根据需要全部满足的条件列表选择DataFrame的行。这些条件存储在字典中,格式为{column:max-value}。
这是一个例子: dict = {'name': 4.0, 'sex': 0.0, 'city': 2, 'age': 3.0}
我需要选择相应属性小于或等于字典中相应值的所有DataFrame行。
我知道要基于两个或多个条件选择行,我可以这样写:
rows = df[(df[column1] <= dict[column1]) & (df[column2] <= dict[column2])]
Run Code Online (Sandbox Code Playgroud)
我的问题是,如何以Python方式选择与字典中存在的条件匹配的行?我尝试过这种方式
keys = dict.keys()
rows = df[(df[kk] <= dict[kk]) for kk in keys]
Run Code Online (Sandbox Code Playgroud)
但这给了我一个错误=“ [ expected”,即使放置[符号也不会消失。
我们可以像这样使用DataFrame.query()方法:
In [109]: dct = {'name': 4.0, 'sex': 0.0, 'city': 2, 'age': 3.0}
In [110]: qry = ' and '.join(['{} <= {}'.format(k,v) for k,v in dct.items()])
In [111]: qry
Out[111]: 'name <= 4.0 and sex <= 0.0 and city <= 2 and age <= 3.0'
In [112]: df.query(qry)
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4341 次 |
| 最近记录: |