【发布时间】:2019-05-20 15:31:06
【问题描述】:
我想对按正流和负流分组的值求和,然后比较它们以找出最大的负流和最大的正流。
我认为 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
In this example 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']})
【问题讨论】:
-
(dftest.value>0) ?
标签: python pandas numpy itertools