如何在Python中提取CSV内Unix时间戳的秒级微秒精度值?
Python提取Unix时间戳中的带微秒精度的秒数值
单条时间戳处理(基础方法)
如果只是验证单条时间戳的转换逻辑,直接用Python标准库的datetime模块即可:
import datetime ts = 1666181576.26295 dt = datetime.datetime.fromtimestamp(ts) # 拼接秒的整数部分与微秒转成的小数部分 sec_with_micro = dt.second + dt.microsecond / 1000000 print(sec_with_micro) # 输出 76.262950
核心逻辑:Unix时间戳的小数部分对应微秒(1秒=1000000微秒),通过datetime对象的second属性获取秒的整数部分,microsecond属性获取微秒数,除以1e6转成小数后与整数部分相加,就能得到带微秒精度的秒数值。
批量处理CSV文件(高效方案)
处理1000条数据用pandas更高效,步骤如下:
import pandas as pd # 读取CSV文件(假设时间戳列名为`timestamp`) df = pd.read_csv("your_file.csv") # 先确保时间戳是浮点数(若CSV中存为字符串则执行此步) df['timestamp'] = df['timestamp'].astype(float) # 将时间戳列转换为datetime类型,保留微秒精度 df['datetime'] = pd.to_datetime(df['timestamp'], unit='s') # 计算带微秒的秒数值 df['sec_with_micro'] = df['datetime'].dt.second + df['datetime'].dt.microsecond / 1000000 # 导出仅含秒数值的CSV(按需选择) df['sec_with_micro'].to_csv("seconds_only.csv", index=False)
注意事项
- 默认使用本地时区转换,若需UTC时区,分别替换为
datetime.datetime.utcfromtimestamp(ts)(单条处理)和pd.to_datetime(df['timestamp'], unit='s', utc=True)(批量处理)
内容的提问来源于stack exchange,提问作者Nifty
相关产品推荐
相关产品推荐

