2016-11-15 62 views
0

获得从熊猫数据框中值我想通过一个条件得到一个元素了数据帧的,就像这样:Python的 - 通过索引条件

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

因为它是不可能的Python知道这是否会返回只有一个或一堆行,它返回这个为

6244 52.45 
Name: col3, dtype: float64 

但我知道只会有这样的一个元素。如何使elem只包含52.45

编辑

由朱利安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.

+0

如果你是标量值后,然后'elem.values [0] '会给你那个或者只是'elem [0]' – EdChum

回答

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] 
+0

谢谢,这个工程作为一个单一的行,但不是在一个循环中。我会编辑这个问题! –

+0

更新了问题。 –