如何使用函数从dataframe列获取第一个和最后一个值

时间:2016-07-08 21:04:44

标签: python pandas

我需要使用类似于从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) 

感谢

2 个答案:

答案 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