我下面有数据帧,仅在A = 12.0时才需要获取D的值。
A B C D
Row_1 12.0 7.0 20 14.0
Row_2 4.0 2.0 16 3.0
Row_3 5.0 54.0 11 NaN
Row_4 NaN 3.0 3 2.0
Row_5 1.0 NaN 8 6.0
我已经尝试过了,但是出现错误:
result = df.loc['A'==12.0, 'D']
print(result)
我将如何实现?
答案 0 :(得分:1)
尝试一下:
import pandas as pd
import numpy as np
df = pd.DataFrame({'A':[12.0, 4.0, 5.0, np.nan, 1.0], 'B':[7.0, 2.0, 54.0, 3.0, np.nan], 'C':[20, 16, 11, 3, 8], 'D':[14.0, 3.0, np.nan, 2.0, 6.0]})
print(df.loc[df.A==12.0]['D'])
print(df.loc[df.A==12.0]['D'][0])
输出:
0 14.0
Name: D, dtype: float64
14.0
答案 1 :(得分:1)
由于您正在寻找'A'== 12.0,因此会出现错误,因此您基本上是在寻找False(不在数据框中)。您需要
result = df.loc[df['A']==12.0, 'D'][0]
最后的[0]是df.loc返回的系列的第一个元素