我有兩個具有每月頻率的資料集。對于其中之一df
,我必須使用以下代碼匯總一些資料以將其從每日變為每月:
df_grouped=df.groupby([df.index.to_period('M'),'City ID']).agg({'Estimated Population':'mean','Estimated Population_2019':'mean','Confirmed Rate':['mean','std'],'Death Rate':['mean','std'],'New Confirmed':'sum','New Deaths':'sum'})
df_grouped.index.rename(['Month','City ID'],inplace=True)
完成這些更改后,我的日期變成了格式YYYY-MM
,例如:
2020-01
2020-02
...
2021-07
我的另一個資料集df2
的日期格式為YYYMM
,因此我使用以下代碼對其進行轉換:
df2['DATE'] = pd.to_datetime(df2['DATE'],format='%Y%m')
我的新日期變成了格式YYYY-MM-DD
,所有的都DD
變成了 01,如下:
2020-01-01
2020-02-01
...
2021-07-01
我如何將df2
日期從現在轉換YYYY-MM-DD
為YYYY-MM
?
我在想,也許有一種方法可以直接從YYYYMM
to轉換YYYY-MM
?
uj5u.com熱心網友回復:
您可以使用
df2['DATE'] = pd.to_datetime(df2['DATE'],format='%Y%m').dt.strftime('%Y-%m')
# or
df['date'] = df['date'].astype(str).str.replace(r'(\d{4})(\d{2})', r'\1-\2', regex=True)
uj5u.com熱心網友回復:
將您的列轉換為PeriodIndex
:
>>> pd.PeriodIndex(df2['DATE'], freq='M')
PeriodIndex(['2020-09', '2020-10', '2020-11', '2020-12', '2021-01', '2021-02'],
dtype='period[M]', name='DATE')
輸入資料:
dti = pd.date_range('2020-9', '2021-3', freq='M')
df2 = pd.DataFrame({'DATE': dti.strftime('%Y%m')})
print(df2)
# Output
DATE
0 202009
1 202010
2 202011
3 202012
4 202101
5 202102
uj5u.com熱心網友回復:
采用:
df = pd.DataFrame({'date': ['2020-01-01', '2020-02-01']})
pd.to_datetime(df['date']).dt.to_period('M')
輸出:
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/470799.html
下一篇:將日期的月份轉換為序列