尝试更快/更容易地对大量列进行求和组合..感谢您的帮助



我正在尝试将列汇总为30(月(的组。每列都是一天。有近2000列

每一排都是一个单独的产品,大约有30000个。

以下是我正在做的总结他们在木星。

我的问题是,有没有一种更简单/更快的方法可以做到这一点,而不必再做60多次下面的事情?

Month1 = (df_sales["d_1"] + df_sales["d_2"] + df_sales["d_3"] + df_sales["d_4"]  + df_sales["d_5"]  + df_sales["d_6"]  + df_sales["d_7"]  + df_sales["d_8"]  + df_sales["d_9"]  + df_sales["d_10"] 
+ df_sales["d_11"]  + df_sales["d_12"]  + df_sales["d_13"]  + df_sales["d_14"]  + df_sales["d_15"]  + df_sales["d_16"]  + df_sales["d_17"]  + df_sales["d_18"]  + df_sales["d_19"]  + df_sales["d_20"] 
+ df_sales["d_21"]  + df_sales["d_22"]  + df_sales["d_23"]  + df_sales["d_24"]  + df_sales["d_25"]  + df_sales["d_26"]  + df_sales["d_27"]  + df_sales["d_28"]  + df_sales["d_29"]  + df_sales["d_30"])
Month1 = df_sales.loc[:, "d_1":"d_30"].sum(axis=1)

如果表中每个月有30天(列(,并且您从第一列开始,则可以执行

all_months = pd.concat((df_sales.iloc[:, i:i+30].sum(axis=1) 
for i in range(0, df_sales.shape[1], 30)), 
axis=1)

以获得所有月份总和的数据帧。

更换

range(0, df_sales.shape[1], 30) 

带有

range(n, df_sales.shape[1], 30) 

如果您的日子从列n开始(请注意,第一列的编号为0(。

最新更新