gpt4 book ai didi

python - 不确定数量的 Pandas 系列的逐元素逻辑与

转载 作者:太空宇宙 更新时间:2023-11-04 10:35:49 28 4
gpt4 key购买 nike

假设我有一个 n 的列表/可迭代对象(其中 n 对函数而言是未知的)代表逻辑 bool 索引的 Pandas Series,我想按元素对它们进行 AND 操作,并使用生成的 Series 进行索引一个数据框。

目前我正在使用 np.logical_and(x1,x2) 和一个 for 循环来执行此操作。我在使用 itertools.izipzip 时运气不佳。 pandas.Series 对象似乎不喜欢被它们操作。

一段时间以来,我一直在摸不着头脑,因为我可能没有看到为什么这似乎会导致一系列 bool 值,但随后我得到了 IndexingError: Unalignable boolean Series key provided执行。

有什么想法吗?我觉得既然这些是 ndarray,那么必须有一些明显干净的方法来做到这一点。

最佳答案

假设我理解你,你可以使用logical_and.reduce。从系列列表开始:

>>> ss = [pd.Series([ True, False,  True, False,  True]), pd.Series([False,  True,  True, False, False]), pd.Series([False, False,  True, False,  True]), pd.Series([False,  True,  True, False, False]), pd.Series([ True,  True,  True,  True, False])]

看起来像

>>> pd.DataFrame(ss)
0 1 2 3 4
0 True False True False True
1 False True True False False
2 False False True False True
3 False True True False False
4 True True True True False

[5 rows x 5 columns]

如果它是一个数据框,你可以跨列减少:

>>> np.logical_and.reduce(ss)
array([False, False, True, False, False], dtype=bool)

如果您想要另一个方向,或者传递 axis=1

请记住,您还可以使用anyall,例如

>>> df = pd.DataFrame(ss)
>>> df.all()
0 False
1 False
2 True
3 False
4 False
dtype: bool

关于python - 不确定数量的 Pandas 系列的逐元素逻辑与,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23418204/

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