python-3.x - 使用大型 csv 数据集(约 4,000,000 个条目)改进 pandas 统计查找
问题描述
我正在尝试编写一个井字游戏机器人,它使用过去游戏的 CSV 文件分析其获胜的机会。我的问题在于代码运行速度有多慢:(与当前游戏匹配且获胜的过去游戏数量)/(与当前游戏匹配的过去游戏数量)。有没有更快的方法在 pandas 模块中生成这个百分比,或者根本没有?
CSV 文件的格式为:游戏、结果并有大约 4,000,000 个条目,这可能会减慢速度,所以我想知道是否有更好的方法?
问题代码:
data = pd.read_csv("Result_data.csv", dtype={"game":"object","outcome":"object"})
def chances(path):
global data
return round(data[(data.game.str.startswith(path))&(data.outcome == "W")].shape[0]
/data[data.game.str.startswith(path)].shape[0],4) * 100
path
是一个长度在 1 到 9 个字符之间的字符串,表示数据集游戏列中(可能是多个)条目的前缀。如果您需要更多信息,请在下方评论!
解决方案
推荐阅读
- python - Python 中的打印和返回问题
- sql-server - SQL Server 不会正确划分值
- sql - 在选择中返回一个 json 对象 - 导致速度变慢
- python - 在 for 循环的每一步将多个五边形保存为图像
- pandas - 将重采样偏移量应用于 DateTimeIndex
- r - 使用 R 计算病例对照队列中跨多个变体的变体实例数
- node.js - 错误:错误的用户名/密码 nodemailer-sengrid-transport 使用 NodeJs
- node.js - 尝试在 AS/400 中运行 nodejs 应用程序时出现“资源暂时不可用”错误
- google-apps-script - Google Suite - Apps Script - 通过 API 将幻灯片下载为 PNG 文件
- java - 是否有任何基于静态上下文的标准 Java 依赖注入 API?