如何在熊猫的where条件下获取特定列的值?

时间:2019-06-28 13:13:05

标签: python pandas

我下面有数据帧,仅在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)

我将如何实现?

2 个答案:

答案 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返回的系列的第一个元素