Pandas使用(六)--数据的分组与聚合

基于dataframe对数据进行分组

# 加载package
import pandas as pd

# 基于某列-(‘列名)进行分组
groupdata = df.groupby('列名')
for item,group in groupdata:
	# item是指列名中的一个元素
	df_test = group

分组应用

在交通领域,一个比较经典的可视化是轨迹时空图(time space diagram,简称ts图)。车辆轨迹蕴含丰富的交通信息,不仅可以体现车辆在路网上的起讫点和行驶路径,而且可以反映车辆瞬时速度随时间和空间的变化过程,能够非常直观地表达交通状态运行情况。
画图所需数据列为:车辆编号veh_id,时间sj,距离基准点距离distance。(通常我们获取的轨迹信息直接数据源为:车辆id,时间戳信息,经纬度信息;每3-10s更新一个位置点,市场上的网约车平台应该是3-6s,出租车在10s左右;对源数据的处理主要是将时间戳信息转化为yy-mm-dd hh-mm-ss个格式,将经纬度信息转化为距离信息。)

import matplotlib.pyplot as plt

groupdata = trajs.groupby('veh_id')
for id,group in groupdata:
	trajsdata = group
	trajsdata = trajsdata.sort_values('sj',ascending=True)
	plt.plot(trajsdata['sj'], trajsdata['distance'], '--', color='blue')
plt.show()

基于dataframe对时序数据进行聚合

注⚠️:在对时序数据数据的聚合时,首先需要将表示时间的列转换为时间格式,并设为索引

可以选取聚合的频次,5min、30min、1h等

# 将时间列df['ft']转化为
import pandas as pd

df['ft'] = pd.to_datetime(df['ft'])
df = df.set_index('ft')

# 聚合用到的函数是resample()函数,聚合后求均值是mean()、求和是sum()
df_jh = df[['列x']].resample('1h').mean() # mean后面一定要加括号啊,这里常常犯错
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值