Считать записи в CSV? - PullRequest
0 голосов
/ 29 мая 2018

Я только изучаю Python, и у меня возникли небольшие проблемы с функциональностью списка языка.У меня есть файл .csv с именем purchases.csv, и мне нужно сделать с ним четыре вещи:

  1. вывести общее количество «заказов на покупку», то есть подсчитать общее количество записей в csv
  2. выводит среднюю сумму покупок, показывая три десятичных знака.
  3. выводит общее количество покупок, совершенных за 1800
  4. , выводит среднюю сумму совершенных покупок, которая превышает 1800, показывая тридесятичные дроби.

Вывод должен выглядеть примерно так:

Total Number of Purchases: xxxx
Amount of Average Purchase: xxxx
Number of Purchase Orders over $1,800: xxxx
Amount of Average Purchases over $1,800: 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)

Чтобы найти общее количество покупок, но я врезался в стену и, похоже, не могу понять, остальное!Я хотел бы получить любую помощь и руководство с этим ... Я просто не могу понять это!

Ответы [ 2 ]

0 голосов
/ 29 мая 2018

Ваш вопрос немного слишком расплывчат, но в любом случае здесь идет.

Если вы не ограничены требованиями, поскольку это домашняя работа или задание, вы должны попробовать Панд ,Это библиотека Python, которая очень помогает в обработке и анализе данных.

выводит общее количество «заказов на покупку», то есть подсчитывает общее количество записей в csv

С Пандами все просто:

import pandas as pd
df = pd.read_csv('purchases.csv')
num = df.shape[0]

Первые две строки говорят сами за себя.Вы создаете экземпляр объекта Pandas.DataFrame с помощью read_csv () и сохраняете его в df.Для последней строки, просто знайте, что Pandas.DataFrame имеет член с именем shape в формате (число строк, количество столбцов), поэтому shape [0] возвращает количество строк.

outputсредняя сумма покупок с указанием трех знаков после запятой.

mean = df['purchase_amount'].mean()

Доступ к столбцу 'purchase_amount' осуществляется с помощью скобок.

выводит общее количество покупок, совершенных за 1800

num_over_1800 = df[df['purchase_amount'] > 1800].shape[0]

Небольшой поворот здесь, просто знайте, что это один из способов установить условие в Пандах.

выводит среднее количество совершенных покупок, которое превышает 1800, показываятри знака после запятой.

mean_over_1800 = df[df['purchase_amount'] > 1800].mean()

Это должно быть само собой разумеющимся из остальных выше.

0 голосов
/ 29 мая 2018

Вам нужна серия отдельных похожих циклов 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 ));
...