gpt4 book ai didi

python - 根据列值仅从 DataFrame 中获取列

转载 作者:行者123 更新时间:2023-12-04 01:02:53 24 4
gpt4 key购买 nike

我正在研究 pandas 只是知道,我被困在这个问题上。

我有这个数据框:

                      apple                    orange                    banana
0 (2021-01-01 00:00:00, 2) (2021-01-02 00:00:00, 1) (2021-01-01 00:00:00, 4)
1 (2021-01-02 00:00:00, 5) (2021-01-04 00:00:00, 2) (2021-01-03 00:00:00, 6)
2 (2021-01-03 00:00:00, 8) (2021-01-06 00:00:00, 3) (2021-01-04 00:00:00, 7)

我如何根据值排除一列?

例如,我只想要那些数字 > 6 的水果。预期结果

                      apple                    banana
0 (2021-01-01 00:00:00, 2) (2021-01-01 00:00:00, 4)
1 (2021-01-02 00:00:00, 5) (2021-01-03 00:00:00, 6)
2 (2021-01-03 00:00:00, 8) (2021-01-04 00:00:00, 7)

其他例子,>=2 和 <=3 的水果预期结果

                      apple                    orange
0 (2021-01-01 00:00:00, 2) (2021-01-02 00:00:00, 1)
1 (2021-01-02 00:00:00, 5) (2021-01-04 00:00:00, 2)
2 (2021-01-03 00:00:00, 8) (2021-01-06 00:00:00, 3)

使用 pandas 可以实现这种用例吗?感谢您的帮助。

最佳答案

使用您显示的示例,请尝试使用 bool 掩码 + loc 函数 pf Pandas:

m = df.apply(lambda s:s.str[1]).gt(6).any()
df.loc[:,m]

说明: 使用 lambda 函数选择每列元组值的第二个元素,一旦选择,然后检查哪个元素具有超过 6 个值,然后传递它到 any 函数,如果在整列中找到任何大于 6 的元素,该函数将返回 True。

输出如下:

                      apple                    banana
0 (2021-01-01 00:00:00, 2) (2021-01-01 00:00:00, 4)
1 (2021-01-02 00:00:00, 5) (2021-01-03 00:00:00, 6)
2 (2021-01-03 00:00:00, 8) (2021-01-04 00:00:00, 7)

关于python - 根据列值仅从 DataFrame 中获取列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67636083/

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