校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > 利用pandas按日期做分組運算的操作

利用pandas按日期做分組運算的操作

熱門標簽:在哪里辦理400電話號碼 西藏智能外呼系統五星服務 400電話申請服務商選什么 清遠360地圖標注方法 江蘇客服外呼系統廠家 千陽自動外呼系統 原裝電話機器人 平頂山外呼系統免費 工廠智能電話機器人

原始數據

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')

補充:利用Pandas和Numpy按時間戳將數據以Groupby方式分組

首先說一下需求,我需要將數據以分鐘為單位進行分組,然后每一分鐘內的數據作為一行輸出,因為不同時間的數據量不一樣,所以所有數據按照最長的那組數據為準,不足的數據以各自的最后一個數據進行補足。

之后要介紹一下我的數據源,之前沒用的數據列已經去除,我只留下要用到的數據data列和時間戳time列,時間戳是以秒計的,可以看到一共是407454行。


   data   time
0  6522.50 1.530668e+09
1  6522.66 1.530668e+09
2  6523.79 1.530668e+09
3  6523.79 1.530668e+09
4  6524.82 1.530668e+09
5  6524.35 1.530668e+09
6  6523.66 1.530668e+09
7  6522.64 1.530668e+09
8  6523.25 1.530668e+09
9  6523.88 1.530668e+09
10  6525.30 1.530668e+09
11  6525.70 1.530668e+09
...   ...   ...
407443 6310.69 1.531302e+09
407444 6310.55 1.531302e+09
407445 6310.42 1.531302e+09
407446 6310.40 1.531302e+09
407447 6314.03 1.531302e+09
407448 6314.04 1.531302e+09
407449 6312.84 1.531302e+09
407450 6312.57 1.531302e+09
407451 6312.56 1.531302e+09
407452 6314.04 1.531302e+09
407453 6314.04 1.531302e+09
 
[407454 rows x 2 columns]

開始進行數據處理,定義一個函數,輸入為一個DataFrame和時間列的命名。

def getdata_time(dataframe,name):
 dataframe[name] = dataframe[name]/60 #將時間轉換為分鐘
 dataframe[name] = dataframe[name].astype('int64') 
 datalen = dataframe.groupby(name).count().max()  #獲取數據最大長度 
 timeframe = dataframe.groupby(name).count().reset_index()#為了獲取時間將分組后時間轉換為DataFrame
 timeseries = timeframe['time'] 
 array = []  #建立一個空數組以便存值

 for time, group in dataframe.groupby(name): 
 tmparray = numpy.array(group['data']) #將series轉換為數組并添加到總數組中
 array.append(tmparray) 
 notimedata = pandas.DataFrame(array)
 notimedata = notimedata.fillna(method='ffill',axis = 1,limit=datalen[0]) #將缺失值補全
 notimedata[datalen[0]+1] = timeseries #把時間添加到最后一列 
 return notimedata

下面將逐行進行分析,首先要以每分鐘為依據進行分組,那么將秒計的時間戳除以60變為分鐘,轉換為int型是為了觀察方便(更改類型是否會導致數據精度缺失影響結果并不清楚,如果有了解的人看到歡迎指出,謝謝)。

datalen是我們要用到的每分鐘中最大的數據長度,用來作為標齊依據。DataFrame.groupby.count()是分別顯示每組數據的個數,并不是顯示有多少個分組,如果想要獲取分組后每一組的index就需要用到下一行的reset_index方法,之所以不直接用reset_index而是在count()方法后調用是因為groupby分組后的結果不是一個DataFrame,而經過count()(不僅僅是count,對分組數據操作的方法都可以,只要得出的結果是與每一組的index一一對應即可)操作后就可以得到一個以index為一列,另一列是count結果的DataFrame。

以下為直接進行reset_index操作的報錯:

AttributeError: Cannot access callable attribute 'reset_index' of 'DataFrameGroupBy' objects, try using the 'apply' method

以下為經過count操作后的reset_index方法顯示結果,可以看到一共分為了10397組:

   time data
0  25511135 33
1  25511136 18
2  25511137 25
3  25511138 42
4  25511139 36
5  25511140  7
6  25511141 61
7  25511142 45
8  25511143 46
9  25511144 19
10  25511145 21
...   ... ...
10387 25521697  3
10388 25521698  9
10389 25521699 16
10390 25521700 13
10391 25521701  4
10392 25521702 34
10393 25521703 124
10394 25521704 302
10395 25521705 86
10396 25521706 52
 
[10397 rows x 2 columns]

提取的timeseries將在最后數據整合時使用。

現在開始將每組數據提取,首先建立一個空的數組用來存放,然后利用for循環獲取每一組的信息,time即為分組的index,group即為每一分組的內容,將數據從group['data']中取出并添加到之前建立的空數組里,循環操作過后轉換為DataFrame,當然這個DataFrame中包含了大量缺失值,因為它的列數是以最長的數據為準。

如下:

   0  1  2  3  ... 1143 1144 1145 1146
0  6522.50 6522.66 6523.79 6523.79 ... NaN NaN NaN NaN
1  6523.95 6524.90 6525.00 6524.35 ... NaN NaN NaN NaN
2  6520.87 6520.00 6520.45 6520.46 ... NaN NaN NaN NaN
3  6516.34 6516.26 6516.21 6516.21 ... NaN NaN NaN NaN
4  6513.28 6514.00 6514.00 6514.00 ... NaN NaN NaN NaN
5  6511.98 6511.98 6511.99 6513.00 ... NaN NaN NaN NaN
6  6511.00 6511.00 6511.00 6511.00 ... NaN NaN NaN NaN
7  6511.70 6511.78 6511.99 6511.99 ... NaN NaN NaN NaN
8  6509.51 6510.00 6510.80 6510.80 ... NaN NaN NaN NaN
9  6511.36 6510.00 6510.00 6510.00 ... NaN NaN NaN NaN
10  6507.00 6507.00 6507.00 6507.00 ... NaN NaN NaN NaN
...  ...  ...  ...  ... ... ... ... ... ...
10386 6333.77 6331.31 6331.30 6333.19 ... NaN NaN NaN NaN
10387 6331.68 6331.30 6331.68  NaN ... NaN NaN NaN NaN
10388 6331.30 6331.30 6331.00 6331.00 ... NaN NaN NaN NaN
10389 6330.93 6330.92 6330.92 6330.93 ... NaN NaN NaN NaN
10390 6330.83 6330.83 6330.90 6330.80 ... NaN NaN NaN NaN
10391 6327.57 6326.00 6326.00 6325.74 ... NaN NaN NaN NaN
10392 6327.57 6329.70 6328.85 6328.85 ... NaN NaN NaN NaN
10393 6323.54 6323.15 6323.15 6322.77 ... NaN NaN NaN NaN
10394 6311.00 6310.83 6310.83 6310.50 ... NaN NaN NaN NaN
10395 6311.45 6311.32 6310.01 6310.01 ... NaN NaN NaN NaN
10396 6310.46 6310.46 6310.56 6311.61 ... NaN NaN NaN NaN
 
[10397 rows x 1147 columns]

可以看到行數是分組個數,一共1147列也是最多的那組數據長度。

之后我們通過調用fillna方法將缺失值進行填充,method='ffill'是指以缺失值前一個數據為依據,axis = 1是以行為單位,limit是指最大填充長度。最終,把我們之前取得的timeseries添加到最后一列,就得到了需求的最終結果。

   0  1  2  ...  1145  1146  1148
0  6522.50 6522.66 6523.79 ...  6522.14 6522.14 25511135
1  6523.95 6524.90 6525.00 ...  6520.00 6520.00 25511136
2  6520.87 6520.00 6520.45 ...  6517.00 6517.00 25511137
3  6516.34 6516.26 6516.21 ...  6514.00 6514.00 25511138
4  6513.28 6514.00 6514.00 ...  6511.97 6511.97 25511139
5  6511.98 6511.98 6511.99 ...  6511.00 6511.00 25511140
6  6511.00 6511.00 6511.00 ...  6510.90 6510.90 25511141
7  6511.70 6511.78 6511.99 ...  6512.09 6512.09 25511142
8  6509.51 6510.00 6510.80 ...  6512.09 6512.09 25511143
9  6511.36 6510.00 6510.00 ...  6507.04 6507.04 25511144
10  6507.00 6507.00 6507.00 ...  6508.57 6508.57 25511145
11  6507.16 6507.74 6507.74 ...  6506.35 6506.35 25511146
...  ...  ...  ... ...   ...  ...  ...
10388 6331.30 6331.30 6331.00 ...  6331.00 6331.00 25521698
10389 6330.93 6330.92 6330.92 ...  6330.99 6330.99 25521699
10390 6330.83 6330.83 6330.90 ...  6327.58 6327.58 25521700
10391 6327.57 6326.00 6326.00 ...  6325.74 6325.74 25521701
10392 6327.57 6329.70 6328.85 ...  6325.00 6325.00 25521702
10393 6323.54 6323.15 6323.15 ...  6311.00 6311.00 25521703
10394 6311.00 6310.83 6310.83 ...  6315.00 6315.00 25521704
10395 6311.45 6311.32 6310.01 ...  6310.00 6310.00 25521705
10396 6310.46 6310.46 6310.56 ...  6314.04 6314.04 25521706
 
[10397 rows x 1148 columns]

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • pandas 實現某一列分組,其他列合并成list
  • pandas 實現分組后取第N行
  • pandas分組排序 如何獲取第二大的數據
  • pandas group分組與agg聚合的實例
  • pandas groupby分組對象的組內排序解決方案
  • pandas組內排序,并在每個分組內按序打上序號的操作

標簽:日照 白城 天水 股票 西安 錦州 安慶 隨州

巨人網絡通訊聲明:本文標題《利用pandas按日期做分組運算的操作》,本文關鍵詞  利用,pandas,按,日期,做,分組,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《利用pandas按日期做分組運算的操作》相關的同類信息!
  • 本頁收集關于利用pandas按日期做分組運算的操作的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    亚洲激情自拍偷拍| 久久只精品国产| 91免费精品国自产拍在线不卡| 久久国产福利国产秒拍| 老色鬼精品视频在线观看播放| 免费成人结看片| 免费欧美在线视频| 国产美女av一区二区三区| 国产一区亚洲一区| 成人精品免费看| 91免费视频网址| 欧美日本在线一区| 日韩欧美不卡一区| 欧美极品美女视频| 一区二区三区四区在线播放| 夜夜嗨av一区二区三区网页| 日韩va亚洲va欧美va久久| 麻豆国产欧美日韩综合精品二区| 激情都市一区二区| 成人免费黄色在线| 欧美综合欧美视频| www精品美女久久久tv| 国产精品不卡在线| 日本视频一区二区三区| 国产电影一区二区三区| 91网站视频在线观看| 欧美人与性动xxxx| 中文字幕高清不卡| 亚洲va韩国va欧美va精品| 韩国欧美国产1区| 一本色道久久综合精品竹菊| 欧美一区二区三区视频| 中文字幕欧美三区| 天堂精品中文字幕在线| 国产乱码精品一区二区三区av| 欧美日韩免费高清一区色橹橹| 欧美偷拍一区二区| 久久女同性恋中文字幕| 一个色综合av| 成人av一区二区三区| 在线不卡一区二区| 国产精品电影院| 九九精品视频在线看| 91玉足脚交白嫩脚丫在线播放| 日韩视频永久免费| 亚洲综合免费观看高清完整版| 久久成人免费电影| 在线播放一区二区三区| 亚洲欧洲日韩在线| 国产盗摄精品一区二区三区在线| 欧美日韩电影在线播放| 亚洲视频在线一区| 不卡在线视频中文字幕| 精品国产一区二区三区不卡| 亚洲伊人色欲综合网| 波多野洁衣一区| 欧美精品在线观看一区二区| www.亚洲色图| 国产亚洲成年网址在线观看| 日韩综合小视频| 欧美亚日韩国产aⅴ精品中极品| 国产精品亲子伦对白| 狠狠v欧美v日韩v亚洲ⅴ| 欧美丰满高潮xxxx喷水动漫| 亚洲色图20p| 成人黄色软件下载| 欧美激情一区二区三区在线| 加勒比av一区二区| 久久综合精品国产一区二区三区 | 国产成人精品一区二| 日韩视频一区二区三区 | 久久国产精品99久久久久久老狼| 欧美日韩在线亚洲一区蜜芽| 一区二区三区四区亚洲| 99精品国产热久久91蜜凸| 亚洲欧美在线视频观看| 91天堂素人约啪| 亚洲精品福利视频网站| 亚洲福利视频一区| 91香蕉视频在线| 欧美色精品在线视频| 欧美专区日韩专区| 欧美一区二区三区四区五区 | 91麻豆免费在线观看| 国产精品初高中害羞小美女文| 成人手机在线视频| 亚洲欧美综合色| 日本久久一区二区三区| 婷婷综合五月天| 久久午夜老司机| 91老师片黄在线观看| 亚洲午夜私人影院| 日韩一区二区精品在线观看| 日韩av成人高清| 精品日韩99亚洲| www.欧美精品一二区| 一区二区免费在线播放| 日韩三级电影网址| 福利视频网站一区二区三区| 亚洲欧美国产77777| 91精品国产综合久久久蜜臀图片| 久久国内精品自在自线400部| 久久精品亚洲精品国产欧美kt∨| 99精品久久99久久久久| 亚洲福利视频一区| 国产无一区二区| 欧洲一区在线观看| 国内精品久久久久影院一蜜桃| 国产精品电影一区二区| 日韩午夜三级在线| 99久久99久久精品免费看蜜桃| 亚洲成人动漫在线观看| 欧美激情一区二区三区蜜桃视频| 欧美熟乱第一页| 国产成人综合在线观看| 亚洲成人先锋电影| 亚洲国产精品av| 日韩欧美一级二级三级久久久| 91免费版pro下载短视频| 久久精品国产亚洲一区二区三区| 亚洲日本在线观看| 久久久久久久一区| 91精品一区二区三区久久久久久 | 亚洲综合成人网| 久久久久久久久久久久久女国产乱| 一本色道久久综合精品竹菊| 国产又黄又大久久| 免费精品视频在线| 亚洲成人av在线电影| 日韩一区欧美小说| 国产女同性恋一区二区| 日韩美女一区二区三区四区| 欧美三级电影在线观看| 99re热这里只有精品免费视频| 国产精品亚洲一区二区三区妖精| 日韩福利电影在线| 亚洲一区二区三区四区五区黄 | 3d成人h动漫网站入口| 一区二区三区国产精品| 久久综合久久综合九色| 欧美一三区三区四区免费在线看 | 日本不卡一二三区黄网| 91久久久免费一区二区| 国产成人免费视频网站| 久久99国产精品免费网站| 无吗不卡中文字幕| 午夜精品视频一区| 有坂深雪av一区二区精品| 国产精品色婷婷久久58| 国产亚洲精品7777| 欧美国产激情二区三区| 欧美国产一区视频在线观看| 久久九九99视频| 欧美激情一区二区三区在线| 国产三级精品视频| 1024精品合集| 一区二区三区成人| 亚洲成人1区2区| 亚洲444eee在线观看| 日韩中文字幕91| 美女www一区二区| 国产91精品欧美| 成人av在线电影| 91国模大尺度私拍在线视频| 欧美视频在线播放| 日韩视频免费观看高清完整版在线观看 | 久久精品亚洲一区二区三区浴池| 欧美sm美女调教| 欧美国产一区二区在线观看| 中文字幕一区二区三区不卡| 亚洲视频一二三| 日韩av一区二区在线影视| 久久99日本精品| 丁香激情综合国产| 日本韩国一区二区三区视频| 欧美妇女性影城| 日本一区二区三区四区在线视频 | 久久精品亚洲精品国产欧美kt∨ | 在线观看精品一区| 欧美精品日日鲁夜夜添| 日韩精品一区国产麻豆| 国产精品五月天| 天天影视色香欲综合网老头| 狠狠狠色丁香婷婷综合久久五月| 粉嫩嫩av羞羞动漫久久久| 欧洲国产伦久久久久久久| 2024国产精品| 亚洲一区二区高清| 国产成人午夜精品5599| 欧美三级日韩在线| 国产欧美一区二区精品忘忧草 | 久久午夜国产精品| 亚洲免费观看在线观看| 久久国产福利国产秒拍| 在线观看免费亚洲| 国产亚洲欧美日韩在线一区| 午夜在线成人av| 成人av免费在线| 欧美成va人片在线观看| 亚洲妇熟xx妇色黄|