2016-12-02 2 views
-1

У меня есть два Найденное значение из следующего анализа:вычитание двух значений LOC в питона панд

v1= dd['y'].loc[dd['localtime']==dd['localtime'].max()] 

v2= dd['y'].loc[dd['localtime']==dd['localtime'].min()] 

значение в виде:

v1 
4906 4344.22552 
Name: y, dtype: float64 

v2 
4785 5400.39864 
Name: y, dtype: float64 

Как я могу получить разница этих двух значений (v2-v1) как (5400.39864 - 4344.22552)?

ответ

0

Если назначение v3 = v2 - v1 не работает, убедитесь, что они имеют один и тот же тип объекта. Тем не менее, это выглядит, как вы пытаетесь найти разницу во времени, в этом случае я хотел бы посмотреть на встроенные Time Delta функции Panda в

+0

Спасибо. Это была проблема типа объекта. – Shahadat05

0

Я думаю, что вы можете использовать:

v1 = pd.Series(4344.22552, index=[4906], name='y') 
print (v1) 
4906 4344.22552 
Name: y, dtype: float64 

v2 = pd.Series(5400.39864, index=[4785], name='y') 
print (v2) 
4785 5400.39864 
Name: y, dtype: float64 

вычитать значения преобразуются в numpy array по values - получить массив с length=1, поэтому выбор по [0]:

print (v2.values[0] - v1.values[0]) 
1056.17312 

print ((v2.values - v1.values)[0]) 
1056.17312 

Или выбрать первое значение v1 и v2 по Series.iat:

print (v2.iat[0] - v1.iat[0]) 
1056.17312 

Но я думаю, что лучше использовать idxmax и idxmin:

v1 = dd.loc[dd['localtime'].idxmax(), 'y'] 
v2= dd.loc[dd['localtime'].idxmin(), 'y'] 

Пример:

dd = pd.DataFrame({'localtime':[1,2,3,5], 
        'y':[5400.39864,2000,3000,4344.22552]}, 
        index=[4785,4786,4788,4906]) 

print (dd) 
     localtime   y 
4785   1 5400.39864 
4786   2 2000.00000 
4788   3 3000.00000 
4906   5 4344.22552 

v1 = dd.loc[dd['localtime'].idxmax(), 'y'] 
v2 = dd.loc[dd['localtime'].idxmin(), 'y'] 

print (v2 - v1) 
1056.17312 
+0

Спасибо. Это хорошее предложение. Я думаю, у меня была проблема с типом данных. Я просто преобразовал его в int. v1 = int (dd ['y']. Loc [dd ['localtime'] == dd ['localtime']. Max()]) v2 = int (dd ['y']. Loc [dd [ 'localtime'] == dd ['localtime']. min()]) Печать (v2-v1) – Shahadat05

Смежные вопросы