【发布时间】:2018-01-17 08:22:10
【问题描述】:
我正在尝试根据需要全部满足的条件列表来选择 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])]
我的问题是,如何以 Pythonic 方式选择与字典中存在的条件匹配的行? 我试过这样,
keys = dict.keys()
rows = df[(df[kk] <= dict[kk]) for kk in keys]
但它给了我一个错误 = "[ expected",即使放置 [ 符号也不会消失。
【问题讨论】:
-
不要将变量命名为
dict,因为dict是一个内置的python 字典构造函数。
标签: python pandas dictionary