pandas分组及时间序列案例

分组案例一:

import numpy as np
import pandas as pd
import time
from datetime import datetime
df2=pd.read_csv(r"E:\拜师\14100_HM数据科学库课件\14100_HM数据科学库课件\day05\code\starbucks_store_worldwide.csv")
df2.head() # 星巴克训练数据
在这里插入图片描述
df2.columns
在这里插入图片描述

要求统计中国各个城市的店铺数量

df2.loc[df2[‘Country’]==‘CN’,‘City’].value_counts() # .loc[]的布尔索引,再分组统计
在这里插入图片描述

案例二:字符串提取及时间序列分组的两种方法

df=pd.read_csv(r"E:\拜师\14100_HM数据科学库课件\14100_HM数据科学库课件\datasourse\911\911.csv")
df.head()
# 简要信息: 911报警的数据集,要求统计不同时间的不同报警类型,报警类型信息在title中,以冒号分割,需要提取冒号前内容,且time为字符串格式,需要转化。
在这里插入图片描述
df.title
在这里插入图片描述
- 首先提取冒号前的报警类型,可以用正则表达式,这里用的更通用的方法,用index方法。
df[‘title_new’]=df.title.apply(lambda x : x[ : x.index(’:’)])
df
在这里插入图片描述
- 方法一:新建列,将时间转化为时间格式,提取年月。
df[‘time_month’]=df.timeStamp.apply(lambda x : datetime.strptime(x,’%Y-%m-%d %H:%M:%S’).month)
df[‘time_year’]=df.timeStamp.apply(lambda x : datetime.strptime(x,’%Y-%m-%d %H:%M:%S’).year)
df[[‘time_year’,‘time_month’]]
在这里插入图片描述
- 用time_year分组对新建的title_new统计。
df2=df.groupby(‘time_year’)[‘title_new’].value_counts()
df2
在这里插入图片描述
- 方法二:用to_datetime转化格式,再用pd.resample方法
#pd.to_datetime,转化为时间格式
df[‘time’]=pd.to_datetime(df.timeStamp)
#把时间设置为index,然后用pd.resample,可以进行快速分类
df.set_index(‘time’,inplace=True)
df.resample(‘Y’).title_new.value_counts()
在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值