2016-02-04 5 views
0

мне нужно отдельно суммировать все положительные и отрицательные значения в столбце т.е.Разделительные положительные и отрицательные значения панд DataFrame

pos_values = [x for x in df.prediction_at_ohlcv_end_date if x > 0] 
neg_values = [x for x in df.prediction_at_ohlcv_end_date if x < 0] 

Вот пример

market_trading_pair next_future_timestep_return ohlcv_start_date prediction_at_ohlcv_end_date 
0 Poloniex_ETH_BTC 0.003013 1450753200 -0.157053 
1 Poloniex_ETH_BTC -0.006521 1450756800 -0.920074 
2 Poloniex_ETH_BTC 0.003171 1450760400 0.999806 
3 Poloniex_ETH_BTC -0.003083 1450764000 0.627140 
4 Poloniex_ETH_BTC -0.001382 1450767600 0.999857 

данных Что такое хороший способ сделать это в пандах?

EDIT:

Я был в состоянии сделать это благодаря некоторым полезным штабелерам, я понял, что я не могу в futher расчета однако. ? `

if prediction_at_ohlcv_end_date > 0 : 
return = prediction_at_ohlcv_end_date * next_future_timestep_return. 

Для каждого элемента в кадре, Любые идеи`

ответ

2

Вы можете использовать метод sum из pandas.Series для конкретного столбца:

neg = df.prediction_at_ohlcv_end_date[df.prediction_at_ohlcv_end_date < 0].sum() 
pos = df.prediction_at_ohlcv_end_date[df.prediction_at_ohlcv_end_date >= 0].sum() 

In [51]: pos 
Out[51]: 2.6268029999999998 

In [52]: neg 
Out[52]: -1.077127 

Для ваших значений:

pos_values = df.prediction_at_ohlcv_end_date[df.prediction_at_ohlcv_end_date >= 0] 
neg_values = df.prediction_at_ohlcv_end_date[df.prediction_at_ohlcv_end_date < 0] 

EDIT

Для вашего редактирования вы можете сделать:

mask = df.prediction_at_ohlcv_end_date >= 0 
res = df.prediction_at_ohlcv_end_date[mask] * df.next_future_timestep_return[mask] 

In [10]: res 
Out[10]: 
2 0.003170 
3 -0.001933 
4 -0.001382 
dtype: float64 
+0

Вы также можете использовать 'query' укоротить команды НЕМНОГО:.' Пос = df.query ('prediction_at_ohlcv_end_date> 0') сумму() ' – kazemakase

+0

Эй, спасибо большое. Действительно большая помощь. Кажется, я забыл еще одну операцию, которую мне нужно сделать, любой шанс посмотреть на мое редактирование? –

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