【发布时间】:2019-07-18 20:08:03
【问题描述】:
我不知道为什么我在这个问题上如此努力。我正在尝试在 pandas 数据框中进行与 averageifs calc 等效的 excel。
我有以下几点:
df = pd.DataFrame(rng.rand(1000, 7), columns=['1/31/2019', '2/28/2019', '3/31/2019', '4/30/2019', '5/31/2019', '6/30/2019', '7/31/2019'])
我也有专栏:
df['Doc_Number'] = ['A', 'B', 'C', 'B', 'C', 'B', 'A', 'A', 'D', 'G', 'G', 'D', 'G', 'B' ...]
我想在 df 的每一列的 Doc_Number 上执行与 averageifs 等效的 excel,同时保持数据框的结构。所以在每一列中,我会计算平均值 if df['Doc_Number'] = ['A', 'B', 'C'...] 但我仍然会保持 1,000 行并且我会应用计算到每个单独的列 ['1/31/2019'、'2/28/2019'、'3/31/2019' ...]。
对于单个列,我会执行以下操作:
df['AverageIfs'] = df.groupby('Doc_Number')['1/31/2019'].transform('np.mean')
但是如何将计算应用于 df 的每一列?实际上,我有更多的列可以应用计算。
我是一个完全的业余爱好者,所以感谢您接受我的问题。
【问题讨论】: