簡體   English   中英

從計算值中排除列

[英]Exclude a column from calculated value

我是圖書館的新手,正在嘗試弄清楚如何將列添加到 pivot 表中,其中包含過去三個月交易數據的行數據的平均值和標准差。

下面是設置 pivot 表的代碼:

previousThreeMonths = [prev_month_for_analysis, prev_month2_for_analysis, prev_month3_for_analysis]
dfPreviousThreeMonths = df[df['Month'].isin(previousThreeMonths)]

ptHistoricalConsumption = dfPreviousThreeMonths.pivot_table(dfPreviousThreeMonths,
                                                            index=['Customer Part #'],
                                                            columns=['Month'],
                                                            aggfunc={'Qty Shp':np.sum}
                                                            )

ptHistoricalConsumption['Mean'] = ptHistoricalConsumption.mean(numeric_only=True, axis=1)
ptHistoricalConsumption['Std Dev'] = ptHistoricalConsumption.std(numeric_only=True, axis=1)
ptHistoricalConsumption

生成的 pivot 表如下所示: 數據透視表

問題是標准差列在其計算中包含了平均值,而我只希望它使用前三個月的原始數據。 例如,部件號 2225 的Std Dev偏差應該是 11.269,而不是 9.2。

我確信有更好的方法可以做到這一點,我只是錯過了一些東西。

一種方法是在調用.std()之前暫時刪除Mean列:

ptHistoricalConsumption['Std Dev'] = ptHistoricalConsumption.drop('Mean', axis=1).std(numeric_only=True, axis=1)

這不會將其永久刪除,它只會將其從饋送到.std()的副本中刪除。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM