如何在Pandas中格式化日期?解决'Styler'对象不可下标错误
解决方法
问题原因
报错'Styler' object is not subscriptable说明你当前的final_df不是pandas DataFrame对象,而是Styler对象——这通常是你之前调用了.style方法对DataFrame做可视化格式化后得到的结果,Styler不支持用[]下标访问列。
步骤1:从Styler恢复原始DataFrame
先通过Styler的.data属性获取背后的原始DataFrame:
df = final_df.data
步骤2:正确转换日期格式
你之前的format='%Y-%m'参数错误,因为原始日期字符串包含时分秒和时区信息,不能直接用年月格式解析。正确做法是先将日期字符串解析为datetime类型,再转成年月格式:
方法一:转成字符串格式的年月(如"2003-01")
# 先解析日期(无需指定format,pandas会自动识别带时区的格式) df['date'] = pd.to_datetime(df['date']) # 转成年月字符串 df['date'] = df['date'].dt.strftime('%Y-%m')
方法二:转成Period类型(更适合时间序列操作)
如果后续还要做时间相关的计算,推荐转成Period类型:
df['date'] = pd.to_datetime(df['date']).dt.to_period('M')
验证结果
处理后你的DataFrame会变成:
date USD 0 2003-01 40
内容的提问来源于stack exchange,提问作者Proger228
相关产品推荐
相关产品推荐

