python – 删除时间不重复的行

python – 删除时间不重复的行,第1张

概述我有一个df,每个公司有4个观察结果(4季度).但是,对于几家公司,我的观察结果不到4次.当我没有公司的四分之三时,我想删除所有与公司相关的观察结果.任何想法如何做到这一点? 这就是df的样子: Quarter Year Company 1 2018 A 2 2018 A 3 2018 我有一个df,每个公司有4个观察结果(4季度).但是,对于几家公司,我的观察结果不到4次.当我没有公司的四分之三时,我想删除所有与公司相关的观察结果.任何想法如何做到这一点?

这就是df的样子:

Quarter     Year    Company       1        2018      A   2        2018      A   3        2018      A   4        2018      A   1        2018      B   2        2018      B   1        2018      C   2        2018      C   3        2018      C   4        2018      C

在这个df我想删除相对于公司B的行,因为我只有2个季度.

非常感谢!

解决方法 对于与原始DataFrame相同大小的系列,使用 transformsize,因此可能的过滤:

df = df[df.groupby('Company')['Quarter'].transform('size') == 4]#if want check by CompanIEs and years#df = df[df.groupby(['Company','Year'])['Quarter'].transform('size') == 4]print (df)   Quarter  Year Company0        1  2018       A1        2  2018       A2        3  2018       A3        4  2018       A6        1  2018       C7        2  2018       C8        3  2018       C9        4  2018       C

如果性能不重要或小DataFrame使用DataFrameGroupBy.filter

df = df.groupby('Company').filter(lambda x: len(x) == 4)
总结

以上是内存溢出为你收集整理的python – 删除时间重复的行全部内容,希望文章能够帮你解决python – 删除时间不重复的行所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1192222.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存