簡體   English   中英

如何將周轉換為月並求和

[英]How to convert weeks into months and sum values

我有一個如下的數據集

指數Sku周銷售

0 SKU1442 201420 1904.0

1個SKU1442 201421 692.0

2個SKU1442 201422 842.0

3個SKU1442 201423 1013.0

4 SKU1442 201424 362.0

5 SKU1442 201425 279.0

6個SKU1442 201426 430.0

7個SKU1442 201427 861.0

8個SKU1442 201428 1069.0

9 SKU1442 201429 721.0

我試圖根據年和周的數字來匯總整個月的銷售額。 例如201406-> 9999,201407-> 100

到目前為止,我已經能夠使用函數as將星期轉換為日期;

dt = datetime.strptime('201420'+ '1', '%Y%W%w')

任何幫助表示贊賞。

我認為首先需要to_datetime ,然后resample並匯總sum

df['Week'] = pd.to_datetime(df['Week'].astype(str) + '1', format='%Y%W%w')

df = df.resample('M', on='Week').sum()
print (df)
             Sales
Week              
2014-05-31  2596.0
2014-06-30  2926.0
2014-07-31  2651.0

替代解決方案通過to_period轉換為month周期:

df = df.groupby(df['Week'].dt.to_period('m')).sum()
print (df)
          Sales
Week           
2014-05  2596.0
2014-06  2926.0
2014-07  2651.0

編輯:為了更好的示例已更改ISku列中的輸入數據:

print (df)
      ISku    Week   Sales
0  SKU1442  201420  1904.0
1  SKU1442  201421   692.0
2  SKU1442  201422   842.0
3  SKU1442  201423  1013.0
4  SKU1444  201424   362.0
5  SKU1444  201425   279.0
6  SKU1444  201426   430.0
7  SKU1444  201427   861.0
8  SKU1444  201428  1069.0
9  SKU1442  201429   721.0

df['Week'] = pd.to_datetime(df['Week'].astype(str) + '1', format='%Y%W%w')

df = df.groupby(['ISku',df['Week'].dt.to_period('m')]).sum().reset_index()
print (df)
      ISku    Week   Sales
0  SKU1442 2014-05  2596.0
1  SKU1442 2014-06  1855.0
2  SKU1442 2014-07   721.0
3  SKU1444 2014-06  1071.0
4  SKU1444 2014-07  1930.0

暫無
暫無

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

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