gpt4 book ai didi

python - Pandas 数据帧 : How to select rows on multiple conditions?

转载 作者:太空狗 更新时间:2023-10-30 00:53:37 26 4
gpt4 key购买 nike

我正在尝试根据需要全部满足的条件列表来选择 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"即使放置 [ 符号也不会消失。

最佳答案

我们可以使用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)
...

关于python - Pandas 数据帧 : How to select rows on multiple conditions?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45590769/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com