我有一个pandas
我已经成功地从 DataFrame 中采样了一行,但问题之一是它只是返回另一个 DataFrame。我需要读取返回的行并获取该行的特定元素的值。
My DataFrame
好像:
Date Open High Low Close Adj Close Volume
0 1993-01-29 43.968700 43.968700 43.750000 43.937500 26.836645 1003200
1 1993-02-01 43.968700 44.250000 43.968700 44.250000 27.027504 480500
2 1993-02-02 44.218700 44.375000 44.125000 44.343700 27.084740 201300
3 1993-02-03 44.406200 44.843700 44.375000 44.812500 27.371080 529400
4 1993-02-04 44.968700 45.093700 44.468700 45.000000 27.485609 531500
我可以使用以下方法对行进行采样:
start_state = self.market_data.iloc[:-self._num_trading_days_in_episode].sample(1)
最终看起来像:
Date Open High Low Close Adj Close Volume
5299 2014-02-13 180.839996 183.199997 180.830002 183.009995 165.017517 100542200
现在我需要弄清楚如何读取Open
从那一行。
Use:
start_state = self.market_data.iloc[:-self._num_trading_days_in_episode].sample(1)
首先可以通过标签选择DataFrame.loc获取索引的第一个值:
open = start_state.loc[start_state.index[0], 'Open']
#faster alternative
#open = start_state.at[start_state.index[0], 'Open']
或者按位置DataFrame.iloc and Index.get_loc:
pos = market_data.columns.get_loc('Open')
open = start_state.iloc[0, pos]
#faster alternative
#open = start_state.iat[0, pos]
或者通过索引在 numpy 数组中选择第一个值:
open = start_state['Open'].values[0]
#pandas 0.24+
#open = start_state['Open'].to_numpy()[0]
Or Series.item用于转换一项Series
到标量:
open = start_state['Open'].item()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)