2017-08-08 83 views
0

每一行頻率我有這樣的功能:創建使用數據幀的Python

for row in df: 
    if (row[2]): 
     media_list.append(df['Irradiance_PV1'].groupby([pd.TimeGrouper(freq='10Min')]).agg(["min", "max"]))  

df['Media']=pd.Series(media_list) 

但這個功能指示的10分鐘間隔的最大值和最小值,我要計算10分鐘的間隔,但對每行如下例所示:

DataTime Irradiance  máx  min 
00:01   500   800  500 
00:02   512   830  512  
00:03   600   900  530   
00:04   670   .  . 
00:05   530   .  . 
00:06   700   .  . 
00:07   760 
00:08   800 
00:09   700 
00:10   730 
00:11   830 
00:12   900 

我該怎麼辦?

回答

1

這是你想要的嗎?

df['min']=df.ix[::-1, 'Irradiance'].rolling(10).min()[::-1] 
df['max']=df.ix[::-1, 'Irradiance'].rolling(10).max()[::-1] 
#take off NaN by adding `min_periods=1` 
#df.ix[::-1, 'Irradiance'].rolling(10,min_periods=1).max()[::-1] 

df 
Out[49]: 
    DataTime Irradiance max min 
0  0:01   500 800.0 500.0 
1  0:02   512 830.0 512.0 
2  0:03   600 900.0 530.0 
3  0:04   670 NaN NaN 
4  0:05   530 NaN NaN 
5  0:06   700 NaN NaN 
6  0:07   760 NaN NaN 
7  0:08   800 NaN NaN 
8  0:09   700 NaN NaN 
9  0:10   730 NaN NaN 
10  0:11   830 NaN NaN 
11  0:12   900 NaN NaN 
+1

是的,這是完美的!非常感謝你!! – Student

+0

@ S.C。高興可以幫助,接受我的答案如何 – Wen