英文:
Drop pandas rows based on percentage of valid data
问题
我有一个类似这样的pandas数据帧
Date_Time | level |
---|---|
2018-02-12 13:22:27 | 5 |
2018-02-12 13:17:27 | 7 |
2018-02-12 13:12:27 | 2 |
2018-02-12 13:07:27 | 6 |
2018-02-13 13:12:27 | 4 |
2018-02-13 13:17:27 | 5 |
如何使特定日期的条目少于3个时将其删除,即自2018-03-13起,删除<4个条目,并获取此表
Date_Time | level |
---|---|
2018-02-12 13:22:27 | 5 |
2018-02-12 13:17:27 | 7 |
2018-02-12 13:12:27 | 2 |
2018-02-12 13:07:27 | 6 |
我尝试使用for循环,但运行时间太长。
英文:
I have a pandas data frame that looks like this
Date_Time | level |
---|---|
2018-02-12 13:22:27 | 5 |
2018-02-12 13:17:27 | 7 |
2018-02-12 13:12:27 | 2 |
2018-02-12 13:07:27 | 6 |
2018-02-13 13:12:27 | 4 |
2018-02-13 13:17:27 | 5 |
How do I make it so If there is less than 3 entries on a specific date they get removed
i.e since 2018-03-13 < 4 entries remove them and get this table
Date_Time | level |
---|---|
2018-02-12 13:22:27 | 5 |
2018-02-12 13:17:27 | 7 |
2018-02-12 13:12:27 | 2 |
2018-02-12 13:07:27 | 6 |
I tried using a for loop but that takes too long to run
答案1
得分: 0
你可以使用 groupby
和 transform
来进行 count
操作,然后使用 ge
来获取你想要的行:
df[df.groupby(df['Date_Time'].dt.date)['Date_Time'].transform('count').ge(4)]
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论