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

如何用Python自动计算日期间隔,实现Discord语音通话时长统计

实现方案

推荐用Python的pandas库完成批量处理,10行左右代码就能跑通:

  • 第一步先安装依赖库:
    pip install pandas
  • 第二步使用以下代码处理数据:
import pandas as pd

# 读取原始csv数据
df = pd.read_csv('你的原始文件路径.csv')
# 将datetime列转换为时间格式,方便后续计算
df['datetime'] = pd.to_datetime(df['datetime'])
# 按用户、时间升序排序,保证同一个用户的join记录在leave前面
df = df.sort_values(by=['user', 'datetime']).reset_index(drop=True)

# 按用户分组处理
result = []
for user, group in df.groupby('user'):
    # 过滤有效记录:必须同时有join和leave两条
    if len(group) == 2:
        join_time = group[group['action'] == 'join']['datetime'].iloc[0]
        leave_time = group[group['action'] == 'leave']['datetime'].iloc[0]
        # 计算时长,这里示例保留分钟单位,你可以按需调整为秒/小时
        duration = round((leave_time - join_time).total_seconds() / 60, 2)
        result.append({
            'user': user,
            'join_time': join_time.strftime('%Y-%m-%d %H:%M:%S'),
            'duration_minutes': duration
        })

# 转成DataFrame导出为新csv
result_df = pd.DataFrame(result)
result_df.to_csv('处理后的通话时长统计.csv', index=False, encoding='utf-8-sig')
  • 可选调整项:
    如果你需要时长的单位是秒,直接去掉除以60的逻辑即可;如果有用户存在多条进出记录,也可以在分组逻辑里加循环配对相邻的join、leave记录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 00:18:03