首页 > 解决方案 > 使用大型 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-3.xpandas

解决方案


推荐阅读