【发布时间】:2019-03-13 20:03:39
【问题描述】:
我已经尝试了几个小时来在这里找到答案,但在我的特殊情况下我无法找到任何答案。我能找到的最接近的是:Apply multiple string containment filters to pandas dataframe using dictionary
我有一个包含以下列的交易价格的 pd.Dataframe:
df1 = database[['DealID',
'Price',
'Attribute A',
'Attribute B',
'Attribute C']]
属性分为以下几类:
filter_options = {
'Attribute A': ["A1","A2","A3","A4"],
'Attribute B': ["B1","B2","B3","B4"],
'Attribute C': ["C1","C2","C3"],
}
我想使用 filter_options 的子集过滤 df1,每个键有 多个 值:
filter = {
'Attribute A': ["A1","A2"],
'Attribute B': ["B1"],
'Attribute C': ["C1","C3"],
}
当字典中每个键只有一个值时,以下内容可以正常工作。
df_filtered = df1.loc[(df1[list(filter)] == pd.Series(filter)).all(axis=1)]
但是,我能否通过每个键的多个值获得相同的结果?
谢谢!
【问题讨论】:
-
可以添加示例数据吗?
-
您看过这个问题/答案吗? stackoverflow.com/questions/12065885/…
标签: python pandas dataframe filter