Python 计算CSV中的条目?

Python 计算CSV中的条目?,python,list,csv,counting,Python,List,Csv,Counting,我只是在学习Python,在使用该语言的列表功能时遇到了一些问题。我有一个名为purchases.csv的.csv文件,我需要用它做四件事: 输出“采购订单”的总数,即计算csv中条目的总数 输出购买的平均金额,显示三位小数 输出超过1800次的采购总数 输出超过1800的平均购买量,显示三位小数 输出需要如下所示: 采购总数:xxxx 平均购买金额:xxxx 超过1800美元的采购订单数量:xxxx 平均购买金额超过1800美元:xxxx 到目前为止我已经写过了 import csv wi

我只是在学习Python,在使用该语言的列表功能时遇到了一些问题。我有一个名为
purchases.csv的.csv文件,我需要用它做四件事:

  • 输出“采购订单”的总数,即计算csv中条目的总数
  • 输出购买的平均金额,显示三位小数
  • 输出超过1800次的采购总数
  • 输出超过1800的平均购买量,显示三位小数
  • 输出需要如下所示:

    采购总数:xxxx
    平均购买金额:xxxx
    超过1800美元的采购订单数量:xxxx
    平均购买金额超过1800美元:xxxx
    
    到目前为止我已经写过了

    import csv
    
    with open('purchases.csv') as csvfile:
        readCSV = csv.reader(csvfile,delimiter=',')
        total_purchases=[]
        for row in readCSV:
            total=row[0]
            total_purchases.append(total)
    
    print(total_purchases)
    
    my_sum=0
    for x in home_runs:
        my_sum=my_sum+int(x)
    print("The total number of purchases was: ", my_sum)
    

    找到购买的总数量,但我碰到了一堵墙,似乎无法找出其余的!我想得到任何帮助和指导…我就是想不出来

    您需要一系列单独的类似for循环,但使用if语句只能有条件地计算总和

    假设第[0]行是您的价格列:

    var sumAbove1800 = 0;
    var countAbove1800 = 0;
    var totalSum = 0;
    var totalPurchases = 0;
    for row in readCSV:
            var price = float(row[0])
            totalPurchases = totalPurchases + 1;
            totalSum = totalSum + price;
            if(price > 1800):
                sumAbove1800 = sumAbove1800 + price;
                countAbove1800 = countAbove1800 + 1;
    
    现在要打印出小数点后3位:

    print("Total Average Price: {:.3f}".format(totalSum / totalPurchases));
    print("Total Transactions: {:.3f}".format(totalPurchases));
    print("Total Average Price above 1800: {:.3f}".format(sumAbove1800 / countAbove1800 ));
    print("Total Transactions above 1800: {:.3f}".format(countAbove1800 ));
    

    你的问题有点含糊不清,但还是来了

    除非你受到要求的限制,因为这似乎是家庭作业/作业,否则你应该试一试。这是一个Python库,在数据争用和数据分析方面有很大帮助

    输出“采购订单”的总数,即计算csv中条目的总数

    这对熊猫来说非常容易:

    import pandas as pd
    df = pd.read_csv('purchases.csv')
    num = df.shape[0]
    
    前两行是不言自明的。使用read_csv()构建Pandas.DataFrame对象的实例并将其存储在df中。对于最后一行,只需知道Pandas.DataFrame有一个名为shape的成员,其格式为(行数、列数),因此shape[0]返回行数

    输出购买的平均金额,显示三位小数

    使用括号访问“采购金额”列

    输出超过1800次的采购总数

    这里有点扭曲,只知道这是在熊猫身上设置条件的一种方法

    输出超过1800的平均购买量 显示三个小数


    从上面的其余部分可以看出,这是不言自明的。

    sum
    是Python中的内置函数。不要重新定义它。什么是主运行
    ?它来自哪里?你能显示你的输入文件吗?
    mean = df['purchase_amount'].mean()
    
    num_over_1800 = df[df['purchase_amount'] > 1800].shape[0]
    
    mean_over_1800 = df[df['purchase_amount'] > 1800].mean()