关闭
..k 2023-04-11 23:38 采纳率: 25%
浏览 168
已结题

Python3例题求解

img

img


不会编写代码,求解是否能在不用import函数的情况下,用Python3完整完成上述操作?必有答谢(求完整代码)

  • 写回答

5条回答 默认 最新

  • 「已注销」 2023-04-12 00:57
    关注

    必须使用import,否则无法用python完成。
    解决这个例题需要使用Python的内置模块和第三方库(例如NumPy、Pandas等),因此需要使用import函数。以下是使用Python 3处理此任务的代码示例,其中使用了Pandas和NumPy库。

    import pandas as pd
    import numpy as np
    
    # 读取文件
    df = pd.read_csv('sale.csv')
    
    # 去掉销量为空的异常值
    df.dropna(subset=['销量'], inplace=True)
    
    # 统计销量最大值、最小值、总销量和平均销量
    max_sale = df['销量'].max()
    min_sale = df['销量'].min()
    total_sale = df['销量'].sum()
    mean_sale = df['销量'].mean()
    
    # 计算标准差
    std_sale = df['销量'].std()
    
    # 去掉偏差值大于标准差3倍的异常值
    df = df[np.abs(df['销量'] - mean_sale) <= 3 * std_sale]
    
    # 将销售额分为八个区间,并统计每个区间的百分比
    bins = [0, 400, 800, 1200, 1600, 2000, 2400, 2800, np.inf]
    labels = ['[0,400)', '[400,800)', '[800,1200)', '[1200,1600)', '[1600,2000)', '[2000,2400)', '[2400,2800)', '[2800,)']
    df['区间'] = pd.cut(df['销量'], bins=bins, labels=labels, include_lowest=True)
    percentages = df['区间'].value_counts(normalize=True) * 100
    
    # 打印结果
    print('最大销量:', max_sale)
    print('最小销量:', min_sale)
    print('总销量:', total_sale)
    print('平均销量:', mean_sale)
    print('标准差:', std_sale)
    print('销量百分比:')
    print(percentages)
    

    展开全部

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    ..k 2023-04-12 01:14

    可能没说清楚,我用的是jupyter里的Python3,数据的打开用了 with open 语句

    回复
    「已注销」 回复 ..k 2023-04-12 01:20

    哦,那你可以试试这样,看行不行:

    # 读取文件,去掉异常值为空的行
    with open('sale.csv', 'r') as f:
        lines = f.readlines()[1:]  # 去掉标题行
        data = []
        for line in lines:
            line = line.strip().split(',')
            if line[2]:  # 如果销量不为空
                data.append(float(line[2]))
    
    # 统计销量最大值、最小值、总销量和平均销量
    max_sale = max(data)
    min_sale = min(data)
    total_sale = sum(data)
    avg_sale = total_sale / len(data)
    
    # 计算标准差
    sq_sum = sum([(x - avg_sale) ** 2 for x in data])
    std_dev = (sq_sum / len(data)) ** 0.5
    
    # 去掉偏差值大于标准差3倍的异常值
    data = [x for x in data if abs(x - avg_sale) <= 3 * std_dev]
    
    # 将销售额分为八个区间,并统计每个区间的百分比
    bins = [0, 400, 800, 1200, 1600, 2000, 2400, 2800, max_sale]
    hist = [0] * 8
    for x in data:
        for i in range(8):
            if bins[i] <= x < bins[i+1]:
                hist[i] += 1
                break
    percentages = [100 * x / len(data) for x in hist]
    
    # 打印结果
    print('最大销量:', max_sale)
    print('最小销量:', min_sale)
    print('总销量:', total_sale)
    print('平均销量:', avg_sale)
    print('标准差:', std_dev)
    print('销售额分布:')
    for i in range(8):
        print('[{}, {}):{:.2f}%'.format(bins[i], bins[i+1], percentages[i]))
    
    
    

    回复
    ..k 回复 「已注销」 2023-04-12 01:29

    好的,等会给你回复☺️

    回复
    展开全部12条评论
查看更多回答(4条)
编辑
预览

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 4月12日
  • 已采纳回答 4月12日
  • 创建了问题 4月11日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部