Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.95/103: Рейтинг темы: голосов - 103, средняя оценка - 4.95
2 / 2 / 0
Регистрация: 14.02.2017
Сообщений: 220

Вывод значений из csv файла

19.02.2020, 23:47. Показов 20366. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем здравствуйте!!!
CSV файл приведен во вложении. В нем каждый товар отнесен к какой-либо категории и указано количество этого товара.
Нужно считать файл и вывести все товары определенной категории вместе с их количеством, в таком формате:
Продукты: хлеб - 60, майонез - 20 и т.д.

Я думаю можно для нужного столбца брать и выводить все товары где не ноль, только как сделать, чтобы еще и сам товар выводился, не понимаю.
Буду благодарен за помощь и идеи!!!
Миниатюры
Вывод значений из csv файла  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.02.2020, 23:47
Ответы с готовыми решениями:

Вам доступен csv файл data.csv, содержащий информацию в csv формате.Напишите функцию read_csv для чтения данных из файла
Вам доступен CSV-файл data.csv, содержащий информацию в csv формате. Напишите функцию read_csv для чтения данных из этого файла. Она должна...

Вывод строки из csv-файла по GET-параметру
Здравствуйте, не получается вывести опред. строку по запросу через GET параметр из файла .csv Хочу сделать чтобы через index.php?id=(id...

Считать данные из csv файла, найти сумму значений по указанному столбцу
Дали задание, нужно сдать как можно скорее, я не очень понимаю, как его делать( Создайте программу, которая читает данные из csv...

23
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
19.02.2020, 23:58
Цитата Сообщение от DmitryV555 Посмотреть сообщение
идеи!!!
csv
Достаточно идей?
1
2 / 2 / 0
Регистрация: 14.02.2017
Сообщений: 220
20.02.2020, 06:40  [ТС]
У меня данные в csv файле типа pandas.Dataframe, при попытке
Python
1
2
3
4
5
import csv
with open('product.csv', newline='', encoding='utf-16') as f:
    reader = csv.reader(f)
    for row in reader:
        print(row)
выводятся все содержимое, а если указываю название столбца:
Python
1
print(row['Продукты'])
, то получаю ошибку line contains NULL byte
0
150 / 120 / 36
Регистрация: 01.11.2019
Сообщений: 425
20.02.2020, 09:41
Python
1
2
import pandas as pd
df = pd.read_csv(file)
А дальше группируйте, фильтруйте, сортируйте, .....
1
2 / 2 / 0
Регистрация: 14.02.2017
Сообщений: 220
09.03.2020, 20:47  [ТС]
Можете на примере одного столбца показать как вывести значения в таком формате:
Косметические товары
- мыло: 5
- крем: 6


Буду благодарен за помощь!!!

Добавлено через 1 минуту
Столбец где товары перечислены, называется "Товар"
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
09.03.2020, 21:14
Цитата Сообщение от DmitryV555 Посмотреть сообщение
У меня данные в csv файле типа pandas.Dataframe,
1) В csv файле бывают только данные формата csv.
2) Прочитать csv файл в формат dataframe можно через функцию pd.read_csv(file) указанную выше.
3) Взять данные из столбца - df['Продукты']
4) Вывод данных в нужном вам форме - это уже вопрос банального форматирования.
1
2 / 2 / 0
Регистрация: 14.02.2017
Сообщений: 220
09.03.2020, 21:19  [ТС]
Garry Galler, а можно это сделать сразу со всеми столбцами? чтобы это было оптимальным решением
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
09.03.2020, 21:41
Цитата Сообщение от DmitryV555 Посмотреть сообщение
CSV файл приведен во вложении
Нет примера файла - нет примера кода.
0
2 / 2 / 0
Регистрация: 14.02.2017
Сообщений: 220
09.03.2020, 22:06  [ТС]
Garry Galler,
Вложения
Тип файла: xlsx Microsoft Excel Worksheet.xlsx (8.4 Кб, 7 просмотров)
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
09.03.2020, 23:15
В общем на примере сферического dataframe (приложенный мне уже лень смотреть):
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# Вот, например,  такой у нас фрейм
'''
   Fruits  Price  Size
0   apple   42.0   1.0
1   apple    4.0   2.0
2   apple   45.0   3.0
3  orange   12.0   4.0
4   apple   45.0   5.0
5   apple   46.0   6.0
'''
# и вот что мы хотим
print("--число фруктов в каждой группе--")
 
# сгруппировать по столбцу Fruits, получить число имен в каждой группе
cnt = df.groupby(['Fruits']).size().reset_index()
# что вышло
print(cnt)
'''
   Fruits  0
0   apple  5
1  orange  1
'''
# выводим
for name,value in zip(cnt['Fruits'],cnt[0]):
    print("{} {}".format(name,value))
'''
apple 5
orange 1
'''
# можно пойти дальше и аггрегировать все числовые значения по сумме
agg = df.groupby(['Fruits']).aggregate(sum).reset_index()
print(agg)
'''
   Fruits  Price  Size
0   apple  182.0  17.0
1  orange   12.0   4.0
'''
# потом добавить этот столбец к df, где мы саггрегировали значения по суммам
agg['Count'] = cnt[0]
#agg = agg.assign(Count=cnt[0])  # тоже самое
print(agg)
# получится вот так красиво и информативно
'''
   Fruits  Price  Size  Count
0   apple  182.0  17.0      5
1  orange   12.0   4.0      1
'''
 
# и потом вывести что нам нужно
for _, row in agg.iterrows():
   print("{} {} {} {}".format(
        row['Fruits'],row['Price'],row['Size'],row['Count'])
)
'''
apple 182.0 17.0 5
orange 12.0 4.0 1
'''
1
2 / 2 / 0
Регистрация: 14.02.2017
Сообщений: 220
10.03.2020, 23:42  [ТС]
Спасибо за подробный пример!!!
Теперь у меня это таблица заполнена вероятностями(рисунок во вложении и сам файл тоже)
Я сделал группировку по столбцу "Продукты" и получил следующее:
-------------------------
Продукты 0
0 0.000000 6
1 0.008937 1
2 0.010708 1
3 0.012073 1
4 0.015848 1

Теперь я хочу отобрать те строки у поля "Продукты", где вероятность >=0.01, но только чтобы вывод был с товаром вместе:
------------------------
майонез 0.010708
рубашка 0.012073
мяч 0.015848
------------------------
Подскажите как привязать товар к значению? Возможно ли это?
Python
1
2
3
import pandas as pd
df = pd.read_csv(r"product.csv", sep ='\t', encoding = 'utf-16')
cnt = df.groupby(['Продукты']).size().reset_index()
Миниатюры
Вывод значений из csv файла  
Вложения
Тип файла: xlsx product.xlsx (8.3 Кб, 1 просмотров)
0
150 / 120 / 36
Регистрация: 01.11.2019
Сообщений: 425
11.03.2020, 07:51
Python
1
2
3
4
5
cnt = df.groupby(['Товар', 'Продукты']).size().reset_index()
cnt = cnt[cnt['Продукты'] >= 0.01]
print(cnt)
cnt = cnt[['Товар', 'Продукты']]
print(cnt)
2
2 / 2 / 0
Регистрация: 14.02.2017
Сообщений: 220
11.03.2020, 09:44  [ТС]
volkomorov, спасибо большое!!! можете пояснить действие cnt?
0
150 / 120 / 36
Регистрация: 01.11.2019
Сообщений: 425
11.03.2020, 10:05
Что бы сказать спасибо, достаточно кликнуть "Спасибо" в нижнем правом углу под ответом пользователя

cnt - это просто имя новой таблицы. Для удобства рекомендуется использовать понятные имена, например:

Python
1
df_group = df.groupby(['Товар', 'Продукты']).size().reset_index()  # Не вижу смысла в этой группировке
Фильтруем сгруппированный DF
Python
1
df_filter = df_group[df_group['Продукты'] >= 0.01]
Выводим нужные столбцы
Python
1
df_product = df_filter[['Товар', 'Продукты']]

Таким образом мы получаем 3 DF: df_product, df_filter, df_group с которыми мы можем работать по отдельности
1
2 / 2 / 0
Регистрация: 14.02.2017
Сообщений: 220
14.03.2020, 17:52  [ТС]
volkomorov, а можно еще такой вопрос, возможно ли сделать такой отбор сразу для всех столбцов, а не только "Продукты"
Цитата Сообщение от DmitryV555 Посмотреть сообщение
Теперь я хочу отобрать те строки у поля "Продукты", где вероятность >=0.01, но только чтобы вывод был с товаром вместе:
0
150 / 120 / 36
Регистрация: 01.11.2019
Сообщений: 425
14.03.2020, 19:01
У вас изначально данные неправильно хранятся, как у вас крем может быть Канц товаром и косметикой одновременно?
0
2 / 2 / 0
Регистрация: 14.02.2017
Сообщений: 220
14.03.2020, 19:14  [ТС]
volkomorov, это просто рандомное значения вероятностей, никакой смысловой характер эта табличка не несет) просто нужно теперь на выходе посмотреть эту штуку
Цитата Сообщение от DmitryV555 Посмотреть сообщение
Теперь я хочу отобрать те строки у поля "Продукты", где вероятность >=0.01, но только чтобы вывод был с товаром вместе
сразу для всех столбцов) ну думал как-то оптимизировать это можно, а не каждый раз прописывать название столбца
0
150 / 120 / 36
Регистрация: 01.11.2019
Сообщений: 425
14.03.2020, 21:18
Python
1
2
3
4
5
6
7
8
9
import pandas as pd
import random
 
 
data = [[random.randint(0, 10) for i in range(0, 6)] for i in range(0, 10)]
 
df = pd.DataFrame(data)
print(df)
print(df[df.values >= 8].drop_duplicates())
1
150 / 120 / 36
Регистрация: 01.11.2019
Сообщений: 425
14.03.2020, 21:18
Python
1
2
3
4
5
6
7
8
9
import pandas as pd
import random
 
 
data = [[random.randint(0, 10) for i in range(0, 6)] for i in range(0, 10)]
 
df = pd.DataFrame(data)
print(df)
print(df[df.values >= 8].drop_duplicates())
1
2 / 2 / 0
Регистрация: 14.02.2017
Сообщений: 220
15.03.2020, 11:18  [ТС]
volkomorov, получив df_product
Цитата Сообщение от volkomorov Посмотреть сообщение
1
df_product = df_filter[['Товар', 'Продукты']]
на выходе я имею такие данные:
Товар Продукты
майонез 0.010708
рубашка 0.012073
мяч 0.015848

Как сохранить эти данные в файл формата json? Чтобы было в таком виде: {"Товар": "майонез 0.010708", "рубашка 0.012073", "мяч 0.015848"}. Буду очень признателен за помощь!! Извините опять за беспокойство)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.03.2020, 11:18
Помогаю со студенческими работами здесь

Вывод в файл/Чтение из файла формата .CSV
Есть задачи: Задача №1. Имеется матрица размерностью MxN. Написать программу, выполняющую следующие функции: 1. Ввод c клавиатуры...

Отсортировать вывод данных в из CSV файла в DataGridView
При запуске программы у меня создаётся CSV файл который является базой данных. И на данный момент он выводит ВСЕ строки в datagridview, но...

Вывод csv или xsl файла в DataGridView
Здравствуйте! У кого нибудь есть пример такого алгоритма?

C++, вывод данных ячеек выбранной строки CSV файла
Здравствуйте, подскажите пожалуйста как вывести данные выбранной строки CSV файла. Количество строк 52, а столбцов 14. Буду примного...

Как записать в один столбец из одного файла csv в csv
Всем привет Работает, но не получается, как нужно def take_first_n_rows_to_file(): with...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru