欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

如何使用Pandas和Numpy按時間戳將數(shù)據以Groupby方式分組-創(chuàng)新互聯(lián)

小編給大家分享一下如何使用Pandas和Numpy按時間戳將數(shù)據以Groupby方式分組,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

成都創(chuàng)新互聯(lián)是一家專業(yè)的成都網站建設公司,我們專注成都做網站、網站設計、網絡營銷、企業(yè)網站建設,賣鏈接一元廣告為企業(yè)客戶提供一站式建站解決方案,能帶給客戶新的互聯(lián)網理念。從網站結構的規(guī)劃UI設計到用戶體驗提高,創(chuàng)新互聯(lián)力求做到盡善盡美。

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

之后要介紹一下我的數(shù)據源,之前沒用的數(shù)據列已經去除,我只留下要用到的數(shù)據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]

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

def getdata_time(dataframe,name):
 dataframe[name] = dataframe[name]/60  #將時間轉換為分鐘
 dataframe[name] = dataframe[name].astype('int64')
 
 datalen = dataframe.groupby(name).count().max()   #獲取數(shù)據大長度
 
 timeframe = dataframe.groupby(name).count().reset_index()#為了獲取時間將分組后時間轉換為DataFrame
 timeseries = timeframe['time']    
 
 array = []   #建立一個空數(shù)組以便存值
 for time, group in dataframe.groupby(name): 
 
 tmparray = numpy.array(group['data']) #將series轉換為數(shù)組并添加到總數(shù)組中
 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變?yōu)榉昼?,轉換為int型是為了觀察方便(更改類型是否會導致數(shù)據精度缺失影響結果并不清楚,如果有了解的人看到歡迎指出,謝謝)。

datalen是我們要用到的每分鐘中大的數(shù)據長度,用來作為標齊依據。DataFrame.groupby.count()是分別顯示每組數(shù)據的個數(shù),并不是顯示有多少個分組,如果想要獲取分組后每一組的index就需要用到下一行的reset_index方法,之所以不直接用reset_index而是在count()方法后調用是因為groupby分組后的結果不是一個DataFrame,而經過count()(不僅僅是count,對分組數(shù)據操作的方法都可以,只要得出的結果是與每一組的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將在最后數(shù)據整合時使用?,F(xiàn)在開始將每組數(shù)據提取,首先建立一個空的數(shù)組用來存放,然后利用for循環(huán)獲取每一組的信息,time即為分組的index,group即為每一分組的內容,將數(shù)據從group['data']中取出并添加到之前建立的空數(shù)組里,循環(huán)操作過后轉換為DataFrame,當然這個DataFrame中包含了大量缺失值,因為它的列數(shù)是以最長的數(shù)據為準。如下:

 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]

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

之后我們通過調用fillna方法將缺失值進行填充,method='ffill'是指以缺失值前一個數(shù)據為依據,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和Numpy按時間戳將數(shù)據以Groupby方式分組”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

網頁標題:如何使用Pandas和Numpy按時間戳將數(shù)據以Groupby方式分組-創(chuàng)新互聯(lián)
轉載來源:http://aaarwkj.com/article32/iohsc.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供云服務器、Google網站建設、網站排名、品牌網站制作、網站營銷

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化
熟女中文字幕一区二区| 国产欧美一区二区三区高清| 蜜臀视频网站在线观看| 蜜臀国产午夜在线视频| 亚洲中文字幕第三页在线观看 | 久久不卡高清免费av| 国产精品原创传媒在线观看| 国产福利成人一区二区| 97成人在线视频免费| av一级免费在线观看| 亚洲国产日韩精品欧美| 日韩精品中文字幕有码| 中国一级黄片免费欧美| 国产免费高清视频成人| 亚洲伊人av第一页在线观看| 熟女aaa一区二区午夜| 精品人妻一区二区三区蜜桃视频| 日韩一区二区三区91| 日韩免费毛片在线观看| 亚洲欧美日韩精品在线观看| 亚洲精品成人久久av| 久久综合激情亚洲欧美专区| 日本少妇熟女一区二区| 五十路八十路息与子交尾| 国产欧美日韩一区二区三区四区| 91中文字幕精品一区二区| 97高清视频在线观看| 一级欧美黄片在线播放| 亚洲小说欧美激情另类| 日本国产美女精品一区二区| 午夜福利亚洲免费久久| 日韩欧美高清一区二区三区| 成人午夜三级在线观看| 无套内谢少妇高朝毛片| 麻豆AV一区二区三区久久| 国产成人久久精品二区三区| 91麻豆国产在线视频| 婷婷久久香蕉毛片毛片 | 青青草青娱乐免费在线视频| 在线观看中文字幕不卡二区| 18禁视频免费无遮挡|