gpt4 book ai didi

python - 根据多个条件获取 df 的分段

转载 作者:太空狗 更新时间:2023-10-29 23:58:12 24 4
gpt4 key购买 nike

我正在尝试根据多个条件从 df 中提取行,在选择任何行之前必须满足所有条件,否则什么也没有。

我的 friend

columns = ['is_net', 'is_pct', 'is_mean', 'is_wgted', 'is_sum']
index = ['a','b','c','d']
data = [['True','True','False','False', 'False'],
['True','True','True','False', 'False'],
['True','True','False','False', 'True'],
['True','True','False','True', 'False']]

df = pd.DataFrame(columns=columns, index=index, data=data)
df

is_net is_pct is_mean is_wgted is_sum
a True True False False False
b True True True False False
c True True False False True
d True True False True False

我的条件必须是这种格式:

conditions = {'is_net': 'True', 
'is_pct': 'True',
'is_mean': 'False',
'is_wgted': 'True',
'is_sum': 'False'}

预期输出:

    is_net  is_pct  is_mean is_wgted    is_sum
d True True False True False

最佳答案

我认为诀窍是将条件变成一个系列:

>>> pd.Series(conditions)
is_mean False
is_net True
is_pct True
is_sum False
is_wgted True
dtype: object
>>> (df == pd.Series(conditions))
is_mean is_net is_pct is_sum is_wgted
a True True True True False
b False True True True False
c True True True False False
d True True True True True
>>> (df == pd.Series(conditions)).all(axis=1)
a False
b False
c False
d True
dtype: bool
>>> df[(df == pd.Series(conditions)).all(axis=1)]
is_net is_pct is_mean is_wgted is_sum
d True True False True False

关于python - 根据多个条件获取 df 的分段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34726569/

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