gpt4 book ai didi

python - 具有多索引的 pandas 数据框上的 boolean 掩码

转载 作者:行者123 更新时间:2023-11-28 17:11:49 25 4
gpt4 key购买 nike

我有一个包含多索引和多列的数据框:

>>> df = pd.DataFrame([['A1','B1',2,1],['A1','B2',1,3],['A2','B1',2,1]], columns=['key1','key2','val1','val2'])
>>> df.set_index(['key1','key2'], inplace=True)
>>> df

Out[276]:
val1 val2
key1 key2
A1 B1 2 1
B2 1 3
A2 B1 2 1

我还有一个 boolean 掩码,由 df 上方的单级 mutliindex 索引:

>>> mask = pd.DataFrame([['A1',True,False],['A2',False,True]], columns=['key1','val1','val2'])
>>> mask.set_index(['key1'], inplace=True)
>>> mask

Out[277]:
val1 val2
key1
A1 True False
A2 False True

有没有一种简单的方法,如何在 df 上应用 boolean 掩码?我只能应用具有相同形状和(多)索引结构的掩码...

期望的输出是:

              val1    val2
key1 key2
A1 B1 2.0 NaN
B2 1.0 NaN
A2 B1 NaN 1.0

有线索吗?谢谢。

最佳答案

尝试使用DataFrame.where()方法:

In [453]: df.where(mask)
Out[453]:
val1 val2
key1 key2
A1 B1 2.0 NaN
B2 1.0 NaN
A2 B1 NaN 1.0

关于python - 具有多索引的 pandas 数据框上的 boolean 掩码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47128009/

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