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

如何用Pandas或其他工具提取CSV日志raw列中timestamp等字段至新列?

使用Pandas提取CSV中JSON格式列的字段

当然可以用Pandas轻松实现这个需求,以下是具体步骤和代码:

  1. 读取CSV日志文件
    先导入所需库并读取你的CSV文件:

    import pandas as pd
    import json  # 用于安全解析JSON字符串
    
    # 读取CSV文件,替换成你的日志文件实际路径
    df = pd.read_csv('your_log_file.csv')
    
  2. 解析JSON格式的raw列
    利用pd.json_normalize函数可以直接解析JSON字符串,还能自动展开嵌套的JSON结构(比如示例中的dns字段):

    # 将raw列的JSON字符串转为JSON对象,再展开成结构化列
    parsed_df = pd.json_normalize(df['raw'].apply(json.loads))
    

    这里用json.loads比eval更安全,能避免恶意代码执行的风险。

  3. 提取目标字段并保存
    从解析后的DataFrame中挑选你需要的列,比如timestamp、src_ip、proto,甚至嵌套的dns.rrname等,然后保存为新文件:

    # 选择需要的字段,可根据实际需求调整
    target_cols = parsed_df[['timestamp', 'src_ip', 'proto', 'dest_ip', 'dns.rrname', 'dns.rrtype']]
    
    # 保存为新的CSV文件
    target_cols.to_csv('extracted_logs.csv', index=False)
    
    # 或者保存到Excel的新工作表
    with pd.ExcelWriter('extracted_logs.xlsx') as writer:
        target_cols.to_excel(writer, sheet_name='Extracted_Fields', index=False)
    

处理完成后,你需要的所有字段都会成为单独的列,方便后续的数据分析或查看。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 15:05:20