2016-09-21 37 views
0

我有一個給出事件時間(以天爲單位)的數據框和一個與每個事件相關的值。在符合條件的熊貓數據框中找到一行的第一個實例

對不起,我把它放在代碼片段中,不確定是否有任何其他方式在這個問題中將格式顯示爲表格。

+-----------+----------+ 
 
| EventTime | Value | 
 
+-----------+----------+ 
 
| 389.9067 | 0.076014 | 
 
| 670.9632 | 0.190521 | 
 
| 1012.2839 | 0.266599 | 
 
| 1025.2452 | 0.355095 | 
 
| 1347.1064 | 0.45189 | 
 
| 3554.909 | 0.64213 | 
 
| 3932.491 | 0.688693 | 
 
| 4450.6369 | 0.730536 | 
 
| 4819.5832 | 0.746905 | 
 
| 6252.0017 | 0.880531 | 
 
| 6951.3345 | 0.898307 | 
 
| 7607.0877 | 0.945048 | 
 
| 9044.0014 | 1.002455 | 
 
| 9433.6679 | 1.083201 | 
 
+-----------+----------+

我對獲得與所述第一值相關聯的事件時間> =一個給定的輸入,例如如果輸入= 0.40,我想報告1347.1064

理想情況下,我想要一個通用的解決方案,其中我提供一個值的閾值和數據幀的列表,例如, (.4,.7,.9),並獲取帶有相應事件時間的列表(或任何其他數據結構)。

環顧四周,沒有看到任何明顯的解決方案,但可能只是想念一些東西或者我對熊貓的無知,試圖學習。

在此先感謝

回答

2

下面是使用searchsorted一個方法 -

df.EventTime[df.Value.searchsorted([.4,.7,.9])] 

採樣運行 -

In [281]: df 
Out[281]: 
    EventTime  Value 
0 333.690569 0.097736 
1 942.624952 0.136822 
2 211.588088 0.246093 
3 514.476542 0.483235 
4 650.769771 0.643968 
5 457.457053 0.687587 
6 10.519801 0.730046 
7 692.091846 0.833983 
8 210.612897 0.922743 
9 512.066182 0.964927 

In [282]: df.EventTime[df.Value.searchsorted([.4,.7,.9])] 
Out[282]: 
3 514.476542 
6  10.519801 
8 210.612897 
Name: EventTime, dtype: float64 

如果需要EvenTime值作爲一個數組,使用df.EventTime.values代替。

+0

非常感謝,正是我一直在尋找。 – rbmales

相關問題