У меня есть DataFrame x с тремя столбцами;Суммирование на DataFrame с двумя условиями и несколькими значениями
a b c
1 1 10 4
2 5 6 5
3 4 6 5
4 2 11 9
5 1 2 10
... и ряд y двух значений;
t
1 3
2 7
Теперь я хотел бы получить DataFrame z с двумя столбцами;
t sum_c
1 3 18
2 7 13
... с т от у и sum_c суммы с от й для всех строк, где т был больше, чем и меньше, чем б.
Кто-нибудь сможет мне помочь?
Это большое, много много спасибо !!! – mrhosman
Небольшая настройка для вашего отличного ответа: import pandas as pd import numpy as np df1 = pd.DataFrame ({'a': pd.Series ([1,5,4,2,1]), 'b': pd.Series ([10,6,6,11,2]), 'c': pd.Series ([4,5,5,9,10])}) df2 = pd.DataFrame ({'t' : pd.Series ([3,5])}) def cond_sum (x): return sum (df1 ['c']. ix [np.logical_and (df1 ['a'] x.ix [0])]) pd.concat ([df2, pd.DataFrame ({'sum_c': df2.apply (cond_sum, axis = 1)})], axis = 1) –
mrhosman
ах ур права. была опечатка. просто сделал изменение – leo