1 回答
TA贡献1850条经验 获得超11个赞
我知道如何解决这个问题。
我定义的函数应该返回一个新的数据框,因为我按组聚合数据并且在这种情况下需要一个新的数据框。
如果我不放回报,熊猫只会做聚合,因此你的输出将是'__'
*** Create Dummy variables
df['Dummy']=np.where(df.Sales.notnull(),1,0)
*** Def a function
def Newdummygenerator(x):
for i in range(len(x)):
if x.iloc[i,x.columns.get_loc('Dummy')]==1:
x.iloc[i,x.columns.get_loc('Dummy')]=1
elif x.iloc[i,x.columns.get_loc('Dummy')]==0 and\ sum(x.Dummy[i:])>=1 and sum(x.Dummy[0:i])>=1:
x.iloc[i,x.columns.get_loc('Dummy')]=1
else:
x.iloc[i,x.columns.get_loc('Dummy')]=0
return x
上面定义的函数可以插入到 apply() 函数中
df.groupby().apply(Newdummygenerator)
添加回答
举报