Я хотел бы суммировать значения, сгруппированные по положительным и отрицательным потокам, а затем сравнить их, чтобы вычислить самые большие отрицательные и самые большие положительные потоки.
Я думаю, что itertools, вероятно, является способом сделать это, но можетне понять это.
#create a data frame that shows week and value
n_rows = 30
dftest = pd.DataFrame({'week': pd.date_range('1/4/2019', periods=n_rows, freq='W'),
'value': np.random.randint(-100,100,size=(n_rows))})
#flag positives and negatives
def flowFinder(row):
if row['value'] > 0:
return "Positive"
else:
return "Negative"
dftest['flag'] = dftest.apply(flowFinder,axis=1)
dftest
В этом примере df вы бы определили, что 15-19 складывается до пальца 249, который является максимальным значением всех положительных потоков.Максимальный отрицательный поток - строка 5 с -98.
Редактирование Скоттом Бостоном Лучше всего, если вы добавите код, который генерирует ваш кадр данных, а не ссылки на изображение.
df = pd.DataFrame({'week':pd.date_range('2019-01-06',periods=21, freq='W'),
'value':[64,43,94,-19,3,-98,1,80,-7,-43,45,58,27,29,
-4,20,97,30,22,80,-95],
'flag':['Positive']*3+['Negative']+['Positive']+['Negative']+
['Positive']*2+['Negative']*2+['Positive']*4+
['Negative']+['Positive']*5+['Negative']})