Python - 通过索引条件从pandas数据帧中获取值

时间:2016-11-15 23:20:27

标签: python pandas

我希望通过条件从数据框中获取一个元素,如下所示:

elem = df[(df['id']==enum['properties']['property2']) & (df['time']==10)].col3

由于Python无法知道这是否只返回一行或多行,因此将其返回为

6244    52.45
Name: col3, dtype: float64

但我知道那里只会是这样的一个元素。如何才能使elem仅包含52.45

修改

Julien Marrec的答案在一行中运行良好,但不在以下循环中:

for enum in data['features']:
    elem = df[(df['id']==enum['properties']['property2']) & (df['time']==10)].col3.values[0]

它给了我一个IndexError: index 0 is out of bounds for axis 0 with size 0.

1 个答案:

答案 0 :(得分:1)

你可以快速破解:

elem.values[0]

更新:在编辑问题后,您需要测试是否确实要返回一个元素,或者系列是否为空:

for enum in data['features']:
    elem = df[(df['id']==enum['properties']['property2']) & (df['time']==10)].col3
    if len(elem) == 1:
        return elem.values[0]