双色球往期开奖统计

本代码实现了,在往期开奖数据中,统计每个红球、篮球的开奖频率,仅供参考。

彩票.xlsx

import pandas as pd

def calculate_frequencies(dataframe, red_ball_columns, blue_ball_column):
    # 初始化红球和蓝球的频率字典
    red_ball_frequencies = {i: 0 for i in range(1, 34)}
    blue_ball_frequencies = {i: 0 for i in range(1, 17)}

    # 遍历红球列,统计每个号码的出现次数
    for column in red_ball_columns:
        for number in dataframe[column].unique():
            if 1 <= number <= 33:
                red_ball_frequencies[number] += (dataframe[column] == number).sum()

    # 统计蓝球的出现次数
    for number in dataframe[blue_ball_column].unique():
        if 1 <= number <= 16:
            blue_ball_frequencies[number] += (dataframe[blue_ball_column] == number).sum()

    # 计算频率
    total_draws = len(dataframe)
    red_ball_freq_percent = {ball: freq / total_draws * 100 for ball, freq in red_ball_frequencies.items()}
    blue_ball_freq_percent = {ball: freq / total_draws * 100 for ball, freq in blue_ball_frequencies.items()}

    return red_ball_freq_percent, blue_ball_freq_percent

def print_top_frequencies(frequencies, ball_type, top_n):
    # 根据频率排序并打印前N个球的号码和频率
    sorted_frequencies = sorted(frequencies.items(), key=lambda x: x[1], reverse=True)
    print(f"Top {top_n} {ball_type} Frequencies:")
    for ball_number, frequency in sorted_frequencies[:top_n]:
        print(f"{ball_type} {ball_number}: {frequency:.2f}%")

def main():
    file_path = "彩票.xlsx"

    try:
        # 读取Excel数据
        dataframe = pd.read_excel(file_path)

        # 定义红球和蓝球的列名
        red_ball_columns = [f'红{i}' for i in range(1, 7)]
        blue_ball_column = '篮球'

        # 计算红球和蓝球频率
        red_ball_frequencies, blue_ball_frequencies = calculate_frequencies(dataframe, red_ball_columns, blue_ball_column)

        # 打印红球频率Top 10
        print_top_frequencies(red_ball_frequencies, "红球", 33)

        # 打印蓝球频率Top 10
        print_top_frequencies(blue_ball_frequencies, "蓝球", 16)

    except Exception as e:
        print(f"发生错误:{e}")

if __name__ == "__main__":
    main()

统计结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sky88601

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值