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)
添加回答
舉報