2016-02-24 82 views
3

我有一個以下數據並需要在第一步驟中找到的行之間min值而不0.00計算沒有「零」值的熊貓的最小值?

HOME_48 HOME_24 HOME_12 HOME_03 HOME_01 HOME_00 HOME 
    0.00  1.54  2.02  1.84  1.84  1.84 1.84 
    0.00  1.47  1.76  1.89  2.56  2.56 2.56 
    0.00  2.02  2.50  2.56  1.89  1.92 1.92 

後來我需要計算minmax之間Δ-diff時,但如果我使用下面的代碼,最終結果是不能接受的

df['HOME_MIN'] = df.loc[:, COL_HOME].min(axis=1) 

我不想使用以下招數:

df = df.replace(0, np.NaN) 

因爲有時極端值可能相等,如0.010.02 - 這些值也不正確。

如何添加條件跳過0.00 | 0.01值?

注意:正確的過濾器是

df[df[COL_HOME].min(axis=1) > 0.03].loc[:, COL_HOME].min(axis=1) 

回答

4

你可以使用一個布爾值過濾,以排除任何你不想要的,是這樣的。

In [46]: df[df > .01].min(axis=1) 
Out[46]: 
0 1.54 
1 1.47 
2 1.89 
dtype: float64 
+0

我需要在'df.loc [:,COL_HOME] .min(axis = 1)'特定列中找到'min'值。我如何修改你的例子? – SpanishBoy

+0

您可以在過濾後選擇,例如'df ['HOME_MIN'] = df [df> 0.03] .loc [:, COL_HOME] .doc [:, COL_HOME] .min(axis = 1)' – chrisb

+0

.min(axis = 1)',並在輸出http://screencast.com/t/fD5rcmb7中掙扎。 – SpanishBoy