如何通过给定三个列名对数据帧进行切片来获得值



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

相关内容

  • 没有找到相关文章

最新更新