gpt4 book ai didi

Python Pandas 检查一个值是否在同一天出现多次

转载 作者:太空宇宙 更新时间:2023-11-03 15:17:29 27 4
gpt4 key购买 nike

我有一个 Pandas 数据框,如下所示。我想要做的是检查一个站是否在同一天有变量 yyy 和任何其他变量(如 station1 的情况)。如果这是真的,我需要删除包含 yyy 的整行。

目前我正在使用 iterrows() 执行此操作并循环搜索此变量出现的日期,将变量更改为“删除我”之类的内容,从中构建一个新数据框(因为pandas doesn't support replacing in place ) 并过滤新数据框以删除不需要的行。这现在有效,因为我的数据框很小,但不太可能扩展。

问题:这似乎是一种非常“非 Pandas”的方法,是否有其他方法可以删除不需要的变量?

                dateuse         station         variable1
0 2012-08-12 00:00:00 station1 xxx
1 2012-08-12 00:00:00 station1 yyy
2 2012-08-23 00:00:00 station2 aaa
3 2012-08-23 00:00:00 station3 bbb
4 2012-08-25 00:00:00 station4 ccc
5 2012-08-25 00:00:00 station4 ccc
6 2012-08-25 00:00:00 station4 ccc

最佳答案

我可能会使用 bool 数组进行索引。我们要删除具有 yyy 和多个 dateuse/station 组合的行(无论如何,如果我明白您的意思!) .

我们可以使用transform广播每个dateuse/station组合的大小直到dataframe的长度,然后选择组中长度 > 1 的行。然后我们可以使用 yyy 所在的位置来&

>>> multiple = df.groupby(["dateuse", "station"])["variable1"].transform(len) > 1
>>> must_be_isolated = df["variable1"] == "yyy"
>>> df[~(multiple & must_be_isolated)]
dateuse station variable1
0 2012-08-12 00:00:00 station1 xxx
2 2012-08-23 00:00:00 station2 aaa
3 2012-08-23 00:00:00 station3 bbb
4 2012-08-25 00:00:00 station4 ccc
5 2012-08-25 00:00:00 station4 ccc
6 2012-08-25 00:00:00 station4 ccc

关于Python Pandas 检查一个值是否在同一天出现多次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19804241/

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