本篇文章小编给大家分享一下利用pandas按日期做分组运算操作代码,文章介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。
原始数据
TS PERIOD REQUEST STEPPED VALUE STATUS SECONDS 20-DEC-16 00:00:00.0 600 1 0 2.018 0 1482163200 20-DEC-16 00:01:00.0 600 1 0 2.019 0 1482163260 20-DEC-16 00:02:00.0 600 1 0 2.019 0 1482163320 20-DEC-16 00:03:00.0 600 1 0 2.019 0 1482163380 20-DEC-16 00:04:00.0 600 1 0 2.019 0 1482163440 20-DEC-16 00:05:00.0 600 1 0 2.020 0 1482163500 20-DEC-16 00:06:00.0 600 1 0 2.020 0 1482163560
我们的目标是把TS列从
20-DEC-16 00:00:00.0
转变为
20-DEC-16
的格式,然后按天取均值。
导入包
import numpy as np from pandas import DataFrame, Series import pandas as pd from datetime import datetime
读入文件
df = pd.read_csv('data/test.txt',sep='t')
这里没有解决中文路径名和绝对路径的问题.
转化为数据框
df = DataFrame(df)
转化为时间格式
将TS列转化为时间格式,并保存为新的一列DATE,之后,只留下DATE和VALUE两列,其他统统不要。
df['DATE'] = pd.to_datetime(df['TS']) df = df[['DATE','VALUE']]
关键一步
把形如‘2017-9-4 00:00:00'转化为‘2017-9-4 '
df['DATE'] = [datetime.strftime(x,'%Y-%m-%d') for x in df['DATE']]
strftime有若干参数,其中Y表示四位数的年,m表示两位数的月。
旋转数据框
df =df.pivot_table(index='DATE',aggfunc='mean')