Hey stack家族在从pandas数据帧中获取值方面需要一些帮助,但被困在这里,任何帮助都将不胜感激。
我想从这个ohlc数据帧中获取一个值。
brick_counts time_id efi
1 1 1000
2 1 1500
3 1 2000
4 2 2500
5 2 2600
6 2 3200
在这里,为了从efi列中分割一个值,我首先将brick和time_id列作为索引,并尝试获取值。
我取time_id的最大值,因为我需要数据帧中的最高time_id。
ohlc.set_index(['brick_counts' , 'time_id'] , inplace = True)
latest_time = ohlc['time_id'].max()
efi_pos1 = ohlc.loc[(6,int(latest_time)),'efi']
但问题是,它给了我一个序列格式的值,用索引集代替了我只需要的一个浮点数。
有人能推荐我使用任何其他切片方法来获得值,而不使用brick_counts和time_id作为索引吗?
我需要efi的值,其中brick等于6,time_id是数据帧中最高的。
efi_pos1 = ohlc.loc[(ohlc['brick_counts'] == 6) & (ohlc['time_id'] == ohlc['time_id'].max()), 'efi'].values[0]
print(efi_pos1)
输出:
3200
获取最大时间id的第一个efi
df.loc[df['time_id'].idxmax(), 'efi']
输出:2500
获取最大time_id的最大efi
df.loc[df['time_id'].eq(df['time_id'].max()), 'efi'].max()
输出:3200