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

Python处理VOIP分析CSV:筛选指定通话数据及时间格式转换

最优方案:使用Pandas处理VOIP CSV数据

Pandas是处理这类批量CSV数据的最优选择——它专为结构化数据处理设计,无需打开文件即可直接读写、筛选,对时间格式的转换和处理也非常便捷,完全适配你的需求。

具体实现步骤

  1. 安装Pandas
    执行命令完成安装:

    pip install pandas
    
  2. 核心代码实现
    假设你的CSV中,状态列名为status,通话时长列名为duration,代码示例如下:

    import pandas as pd
    
    # 读取CSV文件(大文件可添加chunksize参数分块处理,比如chunksize=10000)
    df = pd.read_csv('voip_data.csv')
    
    # 将时长字符串转换为总秒数(整数)
    df['duration_seconds'] = pd.to_timedelta(df['duration']).dt.total_seconds().astype(int)
    
    # 应用筛选规则
    filtered_df = df[
        df['status'].isin(['Answered', 'Terminating']) &
        (df['duration_seconds'] <= 30)
    ]
    
    # 保存筛选后的结果到新CSV
    filtered_df.to_csv('filtered_voip_data.csv', index=False)
    

关键细节说明

  • 时间格式转换:pd.to_timedelta()可以直接识别HH:MM:SS格式的字符串,dt.total_seconds()将其转换为总秒数,再用astype(int)转为整数,完全满足你对时间转整数的需求。如果遇到特殊格式的时间字符串,也可以自定义函数处理:
    def duration_to_seconds(dur_str):
        h, m, s = map(int, dur_str.split(':'))
        return h * 3600 + m * 60 + s
    
    df['duration_seconds'] = df['duration'].apply(duration_to_seconds)
    
  • 大文件处理:如果数据量极大导致内存不足,可使用分块读取避免内存溢出:
    chunk_size = 10000
    filtered_chunks = []
    
    for chunk in pd.read_csv('voip_data.csv', chunksize=chunk_size):
        chunk['duration_seconds'] = pd.to_timedelta(chunk['duration']).dt.total_seconds().astype(int)
        filtered_chunk = chunk[
            chunk['status'].isin(['Answered', 'Terminating']) &
            (chunk['duration_seconds'] <= 30)
        ]
        filtered_chunks.append(filtered_chunk)
    
    # 合并所有分块结果
    filtered_df = pd.concat(filtered_chunks)
    filtered_df.to_csv('filtered_voip_data.csv', index=False)
    
  • 库的选择对比:
    • openpyxl主要用于读写Excel文件(.xlsx),处理CSV并非其强项,效率远低于Pandas;
    • xlsxwriter仅支持写入Excel,无法读取和筛选数据,完全不符合你的需求;
    • Pandas则是CSV数据处理的专业工具,语法简洁、性能高效,能完美覆盖你的所有需求。

内容的提问来源于stack exchange,提问作者Lucas Corey-Yares

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 02:55:14