python - 将 "Q12019"对象转换为 datetime64

标签 python python-3.x datetime

我有一个 pandas 数据框,其中一列包含季度和年份的字符串,格式如下:Q12019

我的问题:​如何将其转换为日期时间格式?

最佳答案

您可以使用 Pandas PeriodIndex来实现这一点。只需将季度列重新格式化为预期格式 %Y-%q (在 regex 的帮助下,将年份移到前面):

reformatted_quarters = df['QuarterYear'].str.replace(r'(Q\d)(\d+)', r'\2\1')
print(reformatted_quarters)

打印:

0    2019Q1
1    2018Q2
2    2019Q4
Name: QuarterYear, dtype: object

然后,将此结果提供给 PeriodIndex 以获取datetime 格式。使用 'Q' 指定季度频率:

datetimes = pd.PeriodIndex(reformatted_quarters, freq='Q').to_timestamp()
print(datetimes)

打印:

DatetimeIndex(['2019-01-01', '2018-04-01', '2019-10-01'], dtype='datetime64[ns]', name='Quarter', freq=None)
<小时/>

注意:Pandas PeriodIndex 功能经历了行为回归(记录为 here ),因此对于高于 0.23.4 的 Pandas 版本,您需要使用reformatted_quarters.values 相反:

datetimes = pd.PeriodIndex(reformatted_quarters.values, freq='Q').to_timestamp()

关于python - 将 "Q12019"对象转换为 datetime64,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58760124/

相关文章:

python - 使用 Python 读取未正确关闭的 gz 文件

python - 如何从字典中返回值列表?

python-3.x - 使用同一列中具有另一列中匹配值的值填充 Pandas DataFrame 中的空值

MySQL 和日期时间

php - 如何在 PHP 中设置时间/日期的格式?

Python解析日期并找到正确的locale_setting

python - 使用 pandas 从 csv 文件中读取特征名称

python - 从数组中返回最大值而不是数字值

python - 如何使用已经打开并使用登录凭据登录的浏览器

python-3.x - 如何在对象 DynamoDB 和 Python 中的列表中搜索对象