Я хочу преобразовать столбец DataFrame, содержащий строковые значения, такие как 2020Q2
, в тип периода. Я попробовал следующее решение: { ссылка }, но получил следующую ошибку: TypeError: Incorrect dtype
.
import pandas as pd
x=pd.DataFrame({'col':['2019Q1', '2019Q2', '2019Q3', '2019Q4', '2020Q1', '2020Q2']})
x['period']=pd.PeriodIndex(x.col, freq='Q-Oct')
Я тоже пробовал PeriodIndex
для одной строки.
pd.PeriodIndex('2020Q2', freq='Q-Oct')
Это также дает ошибку: ValueError: Given date string not likely a datetime.
Конечно, я могу сначала преобразовать строку в datetime, а затем преобразовать ее в период.
x['period']=pd.to_datetime(x.col).dt.to_period(freq='Q-oct')
и
pd.to_datetime('2020Q2').to_period(freq='Q-oct')
Но, думаю, есть решение получше.