我如何使用 excel averageifs 的等价物在 python 数据框中创建新列
How do i create a new column in a python dataframe using the equivalent of excel averageifs
我有一个包含以下列的 python 数据框:年月日日销售量
我如何创建一个新列 AvgbyDay,它是平均销售量(按年、月和星期计算的平均值)。我可以使用 groupby 来做到这一点,但我想在数据框中显示它。我正在寻找 excel averageifs($E:$E,$A:$A,A[i],$B:$B,B[i],$D:$D,D[i])
的等价物
如果你想添加带有 groupby
的列,一种方法是使用 transform
:
df['AvgbyDay'] = df.groupby('DayofWeek')['SaleVolume'].transform('mean')
df['AvgbyDay'] = df.groupby(['Year','Month','Date','Day'])['SaleVolume'].transform('mean')
如果您想创建一个单独的列,其中包含年、月、日和日的平均销量,您可以使用for loop
并执行:
time_cols = ['Year','Month','Date','DayofWeek']
for col in df[time_cols]:
df[col+'_average_sales'] = df.groupby(col)['DayofWeek'].transform('mean')
选择你需要的!
我有一个包含以下列的 python 数据框:年月日日销售量
我如何创建一个新列 AvgbyDay,它是平均销售量(按年、月和星期计算的平均值)。我可以使用 groupby 来做到这一点,但我想在数据框中显示它。我正在寻找 excel averageifs($E:$E,$A:$A,A[i],$B:$B,B[i],$D:$D,D[i])
如果你想添加带有 groupby
的列,一种方法是使用 transform
:
df['AvgbyDay'] = df.groupby('DayofWeek')['SaleVolume'].transform('mean')
df['AvgbyDay'] = df.groupby(['Year','Month','Date','Day'])['SaleVolume'].transform('mean')
如果您想创建一个单独的列,其中包含年、月、日和日的平均销量,您可以使用for loop
并执行:
time_cols = ['Year','Month','Date','DayofWeek']
for col in df[time_cols]:
df[col+'_average_sales'] = df.groupby(col)['DayofWeek'].transform('mean')
选择你需要的!