我需要使用类似于从Pandas DF列获取max()
和min()
值的方式获取以下值的第一个值和最后一个值。所以我的代码的这部分完美地给了我最大和最小:
day_high = day_session['High'].rolling(window=1,freq='D').max()
day_low = day_session['Low'].rolling(window=1,freq='D').min()
如何使用函数分别获取第一个和最后一个值?
day_open = day_session.Open.rolling(window=1,freq='D').
? ('第一个'功能是什么?)
day_close = day_session.Last.rolling(window=1,freq='D').
? (什么是'最后'功能?)
我已经尝试了.first()
,这会给出错误输出“Rolling' object has no attribute 'first'
和.last()
这是我使用的数据的一个例子:
data['Last']
Out[96]:
Timestamp
2013-03-07 09:30:00 1440.00
2013-03-07 09:31:00 1439.75
2013-03-07 09:32:00 1440.50
2013-03-07 09:33:00 1441.00
2013-03-07 09:34:00 1441.50
2013-03-07 09:35:00 1441.75
2013-03-07 09:36:00 1440.75
2013-03-07 09:37:00 1440.50
2013-03-07 09:38:00 1440.75
2013-03-07 09:39:00 1440.00
此代码用于滚动窗口,适用于上面的max()Min():
daystart = '9:30'
dayend = '16:14:59'
day_session = data.between_time(daystart,dayend, include_start=True, include_end=True)
我使用concat将这些数据与名为all_vals
的df中的其他系列数据一起使用
all_vals = pd.concat([day_open,day_close,day_high,day_low,day_range,IB_high,IB_low,IB_Range,upper_quartile,lower_quartile,end_session_high,end_session_low], axis=1)
感谢
答案 0 :(得分:1)
您是否尝试使用ohlc
重新取样?
df = pd.DataFrame(
{'price': [100, 101, 102, 103]},
index=pd.to_datetime(['2016-07-08 10:00', '2016-07-08 10:00', '2016-07-08 10:00', '2016-07-08 10:00']))
>>> df.resample('D', how={'price': 'ohlc'})
price
open high low close
2016-07-08 100 103 100 103
您通常应该使用一些示例数据和预期结果发布问题。
修改强> 根据您的样本数据,您可以执行以下操作:
df.resample('D', how={'Last': 'ohlc'})
Last
open high low close
Timestamp
2013-03-07 1440 1441.75 1439.75 1440
答案 1 :(得分:0)
选择数据帧特定列的第一个和最后一个值
df['column_name'].iloc[0] # first element
df['column_name'].iloc[-1] # last element