如何通过提供三个包含 NaN 值的列名来切片数据框来获取值?
how to get a value by slicing a dataframe by giving three column names which also includes NaN value?
这是 ohlc 数据帧,我想从中切出 efi 的值。
brick_counts time_id efi
1 nan 1000
2 nan 1500
3 nan 2000
4 2 2500
5 2 2600
6 2 3200
要从此 ohlc 数据帧中切出单个值,我正在使用这行代码,
ohlc.loc[(ohlc['brick_counts'] == -5) & (ohlc['time_id'] == 2 ), 'efi'].values[0]
这条线完美地工作并给了我价值但是当我尝试应用这条线来使用 nan ,
来切片一个值时
ohlc.loc[(ohlc['brick_counts'] == 5) & (ohlc['time_id'] == float("nan")), 'efi'].values[0]
它告诉我这个错误
IndexError: index 0 is out of bounds for axis 0 with size 0
那么我应该如何使用 brick_counts 和 time_id 列的 nan 值作为我的输入 来分割 efi 的值?
如果总是存在至少一个值使用Series.isna
:
ohlc.loc[(ohlc['brick_counts'] == 5) & (ohlc['time_id'].isna()), 'efi'].values[0]
如果可能没有匹配使用 next
与 iter
:
out = next(iter(ohlc.loc[(ohlc['brick_counts'] == 5000) & (ohlc['time_id'].isna()), 'efi']), 'no match')
这是 ohlc 数据帧,我想从中切出 efi 的值。
brick_counts time_id efi
1 nan 1000
2 nan 1500
3 nan 2000
4 2 2500
5 2 2600
6 2 3200
要从此 ohlc 数据帧中切出单个值,我正在使用这行代码,
ohlc.loc[(ohlc['brick_counts'] == -5) & (ohlc['time_id'] == 2 ), 'efi'].values[0]
这条线完美地工作并给了我价值但是当我尝试应用这条线来使用 nan ,
来切片一个值时ohlc.loc[(ohlc['brick_counts'] == 5) & (ohlc['time_id'] == float("nan")), 'efi'].values[0]
它告诉我这个错误
IndexError: index 0 is out of bounds for axis 0 with size 0
那么我应该如何使用 brick_counts 和 time_id 列的 nan 值作为我的输入 来分割 efi 的值?
如果总是存在至少一个值使用Series.isna
:
ohlc.loc[(ohlc['brick_counts'] == 5) & (ohlc['time_id'].isna()), 'efi'].values[0]
如果可能没有匹配使用 next
与 iter
:
out = next(iter(ohlc.loc[(ohlc['brick_counts'] == 5000) & (ohlc['time_id'].isna()), 'efi']), 'no match')