如何在Pandas中将日期列从字符串转为整数?parse_dates=True无效
Pandas日期列从字符串转整数的解决方法
为什么parse_dates=True无效?
parse_dates=True仅会尝试将CSV的索引列解析为日期类型,若你的日期是普通数据列(比如名为Date的列),这个参数不会对目标列生效。
正确处理步骤
- 读取时直接解析日期列
明确指定要解析的日期列名,而非用True:
stock_df = pd.read_csv("NFLX.CSV", parse_dates=['Date'])
替换['Date']为你实际的日期列名称,执行后该列会被解析为datetime64类型。
- 将datetime类型转为整数
根据需求选以下两种方式之一:
- 转成秒级时间戳(整数形式的Unix时间):
stock_df['Date'] = stock_df['Date'].astype('int64') // 10**9 - 转成年月日拼接的整数(如
20231005格式):stock_df['Date'] = stock_df['Date'].dt.strftime('%Y%m%d').astype(int)
若已读取数据(日期列仍是字符串)
先将字符串列转为datetime类型,再转整数:
# 字符串转datetime stock_df['Date'] = pd.to_datetime(stock_df['Date']) # 后续转整数步骤同上 stock_df['Date'] = stock_df['Date'].astype('int64') // 10**9
内容的提问来源于stack exchange,提问作者Himanshu Singh
相关产品推荐
相关产品推荐

