如何使用Python将CSV文件中的created_utc值转换为常规日期格式
批量转换时间戳的可行方案
方案1:Pandas原生方法(推荐,大数据量下效率远高于逐行调用datetime)
不需要额外引入datetime库,直接用pandas内置的时间处理方法即可完成批量转换,代码如下:
import pandas as pd # 读取你保存的CSV文件 df = pd.read_csv("你的文件路径.csv") # 批量转换created_utc字段为UTC时间格式,unit='s'表示输入为秒级时间戳 df["created_time"] = pd.to_datetime(df["created_utc"], unit="s", utc=True) # 提取单独的年、月、日字段 df["year"] = df["created_time"].dt.year df["month"] = df["created_time"].dt.month df["day"] = df["created_time"].dt.day # 如果需要输出为YYYY-MM-DD格式的日期字符串,可以加这行 df["date_str"] = df["created_time"].dt.strftime("%Y-%m-%d") # 处理完成后保存回CSV df.to_csv("处理后的文件路径.csv", index=False)
方案2:基于你已知的datetime.utcfromtimestamp方法批量应用
如果需要沿用你已经熟悉的单值转换逻辑,可以用apply方法对整列批量执行,适合小数据量场景:
import pandas as pd from datetime import datetime df = pd.read_csv("你的文件路径.csv") # 对整列应用utcfromtimestamp方法 df["created_time"] = df["created_utc"].apply(lambda x: datetime.utcfromtimestamp(x)) # 后续提取年、月、日的逻辑和上面一致 df["year"] = df["created_time"].dt.year df["month"] = df["created_time"].dt.month df["day"] = df["created_time"].dt.day df.to_csv("处理后的文件路径.csv", index=False)
注意事项
- Pushshift API返回的
created_utc默认是秒级时间戳,如果你的数据是毫秒级的,把方案1中pd.to_datetime的unit参数改为'ms'即可。
内容的提问来源于stack exchange,提问作者Jonathan Vendelboe
相关产品推荐
相关产品推荐

