如何通过提供三个列名来切片数据框来获取值?

how to get a value by slicing a dataframe by giving three column names?

嘿,stack family 在从 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 time_id

df.loc[df['time_id'].idxmax(), 'efi']

输出:2500

获取最大值的最大 efi time_id

df.loc[df['time_id'].eq(df['time_id'].max()), 'efi'].max()

输出:3200

efi_pos1 = ohlc.loc[(ohlc['brick_counts'] == 6) & (ohlc['time_id'] == ohlc['time_id'].max()), 'efi'].values[0]

print(efi_pos1)

输出:

3200