我正在尝试将列汇总为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
(。