我有YYYY/MM/DD格式的对象类型的输入日期,我想在末尾将其转换为MM/DD/YYYY格式,以便报告用例。
日期字段有多个转换,所以我最初使用以下代码将对象类型转换为日期类型。还有基于日期字段的附加转换,例如:过滤特定日期范围...
df_source_data['date'] = pd.to_datetime(df_source_data['date'])最后,我需要来自dataframe的最后一组列(这些列在配置列表中维护),包括日期,但是我需要MM/DD/YYYY格式的日期字段。
final_columns=['date','column1','column2','column3'] # config entry
df_final_data[final_columns] # final select for reporting我可以使用strftime转换日期格式,如下所示,但有没有更好的方法来完成这一点,而不是再次添加单独的行来将字段转换为所需的格式(例如,首先将对象类型转换为日期类型,应用过滤器,最后将日期转换为所需的格式),而不是以某种方式将其作为配置列表的一部分,或者在代码中使用更好的方法?
df_final_data['date']=df_final_data['date'].dt.strftime('%m/%d/%Y')发布于 2020-06-20 03:52:00
有没有更好的方法来做这件事,而不是再次添加单独的行来将文件转换为所需的格式(例如,首先将对象类型转换为日期类型,然后应用过滤器,最后将日期转换为所需的格式)?TLDR编号
df_source_data['date'] = pd.to_datetime(df_source_data['date']).dt.strftime('%m/%d/%Y')这将立即为您提供所需的格式,但是,如果您在这些格式之间应用datetime转换,则在pandas中仍将是string对象,从而严重限制了datetime过滤。例如,假设您希望子集为6月份,然后立即转换为所需的字符串输出方式
df_source_data[df_source_data['date'].str[0:2] == '06']而不是仅仅能够做到
df_source_data[df_source_data['date'].dt.month == 6]我建议首先按照您所说的那样执行to_datetime转换,然后在最后转换为您想要的格式。
df_source_data['date'] = pd.to_datetime(df_source_data['date'])
...
df_final_data['date']=df_final_data['date'].dt.strftime('%m/%d/%Y')https://stackoverflow.com/questions/62465841
复制相似问题