python使用pandas分组统计一段时间长度的数据

编程入门 行业动态 更新时间:2024-10-10 12:21:08

python使用pandas分组统计一段时间<a href=https://www.elefans.com/category/jswz/34/1767165.html style=长度的数据"/>

python使用pandas分组统计一段时间长度的数据

要实现的效果:对excel表中的数据,如果某个公司三个月内出现的次数超过3次,则将其筛选出来,注意三个月是指任何时间起点的三个月,而不是某月某日到某月某日的三个月。
原始表如下:

经过处理后结果表如下,广东bbbbb有限公司在三个月的时间内没有大于三条数据,所以被筛选掉了。

实现代码如下:

"""
分组统计一个时间段内的数据,如三个月内,但不限于某个时间起止,是任何三个月的长度内
"""import pandas as pd
import openpyxl
import datetime
import numpy as npdf = pd.DataFrame(pd.read_excel('疑点数据.xlsx',sheet_name = 'Sheet1'))
#将str类型转为时间类型
df['录入日期'] = pd.to_datetime(df['录入日期'])djxh = set()
#通过groupby进行分组
for groupName, groupDf in df.groupby('登记序号'):#遍历分组里的行for index,row in groupDf.iterrows():# + datetime.timedelta(days = 92)表示加上92天(三个月)startDate = pd.to_datetime(row['录入日期'])if groupDf[(startDate < groupDf['录入日期']) & (groupDf['录入日期'] <startDate + datetime.timedelta(days = 92))].count()['登记序号'] > 3:#符合条件的添加到集合当中djxh.add(groupName) #这里只要符合条件的就退出循环,根据实际情况设置break#筛选符合条件的数据,astype(str)转为str类型,空值将变为'nan',如果不转为str类型,int类型保存到excel时会丢失数据,最后几位变为0        
df2 = df[df['登记序号'].isin(djxh)].astype(str)
#将'nan'值替换为空,这样在excel中空值不保存为nan
df2 = df2.replace('nan', np.nan)
#保存到excel
df2.to_excel('结果.xlsx',index = False)

更多推荐

python使用pandas分组统计一段时间长度的数据

本文发布于:2024-02-13 04:10:52,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1690622.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:长度   数据   python   pandas

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!