J'ai un DataFrame
avec des colonnes dans l'index DateTime
, représentant des trimestres tels que:
2000-03-31 00:00:00
Comment puis-je faire pour transformer cela en "2000q1"?
J'ai regardé les documents, mais ils ne disent que DateTimeIndex.quarter ici: http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DatetimeIndex.quarter.html
format='%Y%q'
ne marche pas. L'option on='%Y%q
Vous pouvez utiliser to_period("Q")
:
df.index = df.index.to_period("Q")
import pandas as pd
df = pd.DataFrame({"y": [1,2,3]},
index=pd.to_datetime(["2000-03-31 00:00:00", "2000-05-31 00:00:00", "2000-08-31 00:00:00"]))
df.index = df.index.to_period("Q")
df
# y
#2000Q1 1
#2000Q2 2
#2000Q3 3
Pour convertir une colonne normale col
, utilisez dt
pour accéder aux objets Datetime
de la série:
df = pd.DataFrame({"y": [1,2,3], 'col': pd.to_datetime(["2000-03-31 00:00:00", "2000-05-31 00:00:00", "2000-08-31 00:00:00"])})
df['col'] = df['col'].dt.to_period("Q")
df
# col y
#0 2000Q1 1
#1 2000Q2 2
#2 2000Q3 3