You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:如何用Python Pandas将JSON中的ISO时间戳转换为易分析格式

嘿,别担心,处理这种ISO 8601格式的时间戳在Pandas里其实挺简单的,我来一步步给你讲清楚怎么操作,帮你把数据转换成便于分析的格式:

1. 先读取JSON文件

首先用Pandas的read_json方法加载你的JSON文件就好,代码很直观:

import pandas as pd

# 替换成你的JSON文件路径
df = pd.read_json('your_data.json')

如果你的JSON是嵌套结构(比如每个条目里还有子对象),可能需要加orient参数调整读取方式,比如orient='records',不过先从基础情况开始。

2. 把时间戳字符串转成datetime类型

你的时间戳2012-03-01T00:05:55+00:00是标准的ISO格式,Pandas对这种格式支持很好,有两种转换方式:

方式一:读取时直接解析时间

如果你提前知道哪一列是时间戳,可以在读取的时候就指定解析,省得后续再处理:

# 假设时间戳列的名字是'timestamp',替换成你实际的列名
df = pd.read_json('your_data.json', parse_dates=['timestamp'])

这样读取完成后,该列会直接变成datetime64类型,自带时区信息(这里的+00:00就是UTC时区)。

方式二:读取后再转换时间列

如果读取后发现时间列还是字符串类型,用pd.to_datetime()手动转换就行:

# 转换指定列
df['timestamp'] = pd.to_datetime(df['timestamp'], utc=True)  # utc=True确保保留时区信息

# 要是你不确定哪些列是时间列,可以批量尝试转换:
for col in df.columns:
    # 只处理字符串类型的列
    if df[col].dtype == object:
        try:
            df[col] = pd.to_datetime(df[col], utc=True)
        except ValueError:
            # 转换失败就跳过,说明这列不是时间格式
            continue
3. 验证转换是否成功

转换完可以检查一下列的类型,确保是datetime:

print(df['timestamp'].dtype)
# 正常输出应该是 datetime64[ns, UTC]

也可以看前几行数据确认格式:

print(df['timestamp'].head())
4. 后续分析的小例子

现在时间列是datetime类型了,就能做各种时间相关的分析操作,比如:

  • 按天分组统计数据:
# 假设你有个数值列叫'value',按日期分组求均值
daily_avg = df.groupby(df['timestamp'].dt.date)['value'].mean()
  • 过滤特定时间范围的数据:
# 提取2012年3月的所有数据
march_2012_data = df[(df['timestamp'] >= '2012-03-01') & (df['timestamp'] < '2012-04-01')]
  • 提取时间维度的细节(年、月、小时等):
df['year'] = df['timestamp'].dt.year
df['month'] = df['timestamp'].dt.month
df['hour'] = df['timestamp'].dt.hour

内容的提问来源于stack exchange,提问作者madman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 07:57:24