将 2010 Q1 转换为日期时间为 2010-3-31
Turn 2010 Q1 to datetime as 2010-3-31
如何找到将 Year_Q 转换为日期时间的智能解决方案?我尝试使用
pd.to_datetime(working_visa_nationality['Year_Q'])
但收到错误提示无法识别。所以我尝试了一种愚蠢的方法:
working_visa_nationality['Year'] = working_visa_nationality.Year_Q.str.slice(0,4)
working_visa_nationality['Quarter'] = working_visa_nationality.Year_Q.str.slice(6,8)
现在我发现了一个问题:我确实可以按年份分组数据,但是很难将季度包含到我的折线图中。
那么如何让2010年第一季度像2010-3-31一样呢?
我有点变了MaxU
answer:
df = pd.DataFrame({'Year_Q': ['2010 Q1', '2015 Q2']})
df['Dates'] = pd.PeriodIndex(df['Year_Q'].str.replace(' ', ''), freq='Q').to_timestamp()
print (df)
Year_Q Dates
0 2010 Q1 2010-01-01
1 2015 Q2 2015-04-01
编辑:
df['Dates'] = pd.PeriodIndex(df['Year_Q'].str.replace(' ', ''), freq='Q').to_timestamp(how='e')
print (df)
Year_Q Dates
0 2010 Q1 2010-03-31
1 2015 Q2 2015-06-30
我的正则表达式解决方案。
df['Year_Q'] = pd.to_datetime(df['Year_Q'].str.replace(r'\ [Q1]+', '-3-31'))
working_visa_nationality['Dates'] = pd.PeriodIndex(working_visa_nationality['Year_Q'].str.replace(' ', ''), freq='Q').to_timestamp() + pd.offsets.QuarterEnd()
working_visa_nationality['Dates'] = pd.PeriodIndex(working_visa_nationality['Year_Q'].str.replace(' ', ''), freq='Q').to_timestamp(how='end')
两者都很好用。
谢谢大家,我做了一些实验。
如何找到将 Year_Q 转换为日期时间的智能解决方案?我尝试使用
pd.to_datetime(working_visa_nationality['Year_Q'])
但收到错误提示无法识别。所以我尝试了一种愚蠢的方法:
working_visa_nationality['Year'] = working_visa_nationality.Year_Q.str.slice(0,4)
working_visa_nationality['Quarter'] = working_visa_nationality.Year_Q.str.slice(6,8)
现在我发现了一个问题:我确实可以按年份分组数据,但是很难将季度包含到我的折线图中。
那么如何让2010年第一季度像2010-3-31一样呢?
我有点变了MaxU
answer:
df = pd.DataFrame({'Year_Q': ['2010 Q1', '2015 Q2']})
df['Dates'] = pd.PeriodIndex(df['Year_Q'].str.replace(' ', ''), freq='Q').to_timestamp()
print (df)
Year_Q Dates
0 2010 Q1 2010-01-01
1 2015 Q2 2015-04-01
编辑:
df['Dates'] = pd.PeriodIndex(df['Year_Q'].str.replace(' ', ''), freq='Q').to_timestamp(how='e')
print (df)
Year_Q Dates
0 2010 Q1 2010-03-31
1 2015 Q2 2015-06-30
我的正则表达式解决方案。
df['Year_Q'] = pd.to_datetime(df['Year_Q'].str.replace(r'\ [Q1]+', '-3-31'))
working_visa_nationality['Dates'] = pd.PeriodIndex(working_visa_nationality['Year_Q'].str.replace(' ', ''), freq='Q').to_timestamp() + pd.offsets.QuarterEnd()
working_visa_nationality['Dates'] = pd.PeriodIndex(working_visa_nationality['Year_Q'].str.replace(' ', ''), freq='Q').to_timestamp(how='end')
两者都很好用。 谢谢大家,我做了一些实验。