我有一個熊貓溫度和輻射時間系列dataframe
。時間分辨率是常規步驟中的1分鐘。如何重新採樣應用於每列的不同函數的數據幀?
import datetime
import pandas as pd
import numpy as np
date_times = pd.date_range(datetime.datetime(2012, 4, 5, 8, 0),
datetime.datetime(2012, 4, 5, 12, 0),
freq='1min')
tamb = np.random.sample(date_times.size) * 10.0
radiation = np.random.sample(date_times.size) * 10.0
frame = pd.DataFrame(data={'tamb': tamb, 'radiation': radiation},
index=date_times)
frame
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 241 entries, 2012-04-05 08:00:00 to 2012-04-05 12:00:00
Freq: T
Data columns:
radiation 241 non-null values
tamb 241 non-null values
dtypes: float64(2)
我怎麼能下采樣這一dataframe
一小時的分辨率,計算每小時意味着的溫度和輻射每小時總和?
這可以擴展到每列的函數列表:'frame.resample('1H',how = {'radiation':[np.sum,np.min],'tamb':np.mean})''。生成的DataFrame在其列上有一個MultiIndex,原始列名稱爲級別0,函數名稱爲級別1. – 2015-05-26 23:36:18
要添加到我以前的評論:而不是每列的函數列表,還可以使用字典,其中的關鍵字是新的列名,值是要使用的函數:'frame.resample('1H',how = {'radiation':{'sum_rad':np.sum,'min_rad':np.min} ,'tamb':np.mean})' – 2015-05-27 20:27:38
說明是否要在結果中添加一個新列,例如resample期間每行的count()。 – codingknob 2016-03-29 19:45:38