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

使用pandas按日统计指定编码字符串对应评分均值生成新数据集的方法

高效实现方案

针对大型数据集,优先使用Pandas原生向量化操作,避免Python层循环,性能足以应对千万行级数据:

核心逻辑

  • 对每个目标字符串,先筛选出Code列包含该字符串的行
  • 按日期分组计算对应行的Ratings均值
  • 合并所有字符串的计算结果,空缺值填充为NA

完整代码

import pandas as pd

# 示例输入(实际使用时替换为你的数据集读取代码即可)
df1 = pd.DataFrame({
    'Date':['2021-01-01', '2021-01-01', '2021-01-01', '2021-01-02', '2021-01-02', '2021-01-02', '2021-01-02', '2021-01-03'],
    'Code':['P:346 K,329 28', 'N2:345 P239', 'P:346 K2', 'E32 345', 'Q2_325', 'P;235 K345', '2W345', 'Pq-245 3460239'], 
    'Ratings':[9.0, 8.0, 5.0, 3.0, 2, 3, 6, 5]
})
strings = ['239', '345', '346']

# 计算每个字符串对应每日评分均值
mean_list = []
for s in strings:
    # regex=False关闭正则匹配,大幅提升子串检索速度
    mask = df1['Code'].str.contains(s, regex=False)
    daily_mean = df1[mask].groupby('Date')['Ratings'].mean().rename(s)
    mean_list.append(daily_mean)

# 合并结果,空缺值填充为NA
result_df = pd.concat(mean_list, axis=1).reset_index().fillna('NA')

超大数据集优化方案

如果数据集超过内存上限,可采用分块处理:

  • 读取数据时用pd.read_csv(文件路径, chunksize=100000)按块读取
  • 每个块按上述逻辑计算单块的评分总和与符合条件的行数
  • 所有块处理完成后,按日期和字符串合并计算全局均值(全局均值=总评分和/总符合行数)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 11:15:02