Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/40: Рейтинг темы: голосов - 40, средняя оценка - 4.80
 Аватар для VistaSV30
987 / 331 / 79
Регистрация: 10.04.2012
Сообщений: 1,242
Записей в блоге: 4

Прочитать CSV в массив numpy

12.12.2020, 00:12. Показов 8136. Ответов 9

Студворк — интернет-сервис помощи студентам
Добрый день!

Подскажите как корректно загрузить файл CSV с разнотипными данными в массив NumPy

Фрагмент файла CSV
Code
1
2
3
4
5
6
"РегионФ";"F5";"F12";"F27";"F36"
"Белгородская обл.";27.1.2019 0:00:00;402,00;0,00;250000,00
"Белгородская обл.";1.1.2019 0:00:00;283,00;0,00;20000,00
"Белгородская обл.";7.1.2019 0:00:00;402,00;0,00;400000,00
"Белгородская обл.";9.1.2019 0:00:00;88,00;0,00;0,00
"Белгородская обл.";18.1.2019 0:00:00;282,00;1,00;20000,00
Первая строка содержит названия колонок.
В первой колонке названия регионов в текстовом формате, в следующей колонке (F5) записана дата и время, в остальных колонках вещественные числа.
Десятичный разделитель – запятая.
Разделитель колонок – точка с запятой.

Пробую читать так:
Python
1
a = np.genfromtxt('C:/Users/Arlen/Documents/Fire.csv', dtype= None, delimiter=";", skip_header=1)
Не получается

Спасибо!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.12.2020, 00:12
Ответы с готовыми решениями:

Работа с csv файлом через numpy
import numpy as np import csv def load_data(filename=None): if filename == "./Social_Network_Ads.csv": header = ...

Прочитать CSV на windows mobile 6
Добрый день. Имеется терминал Motorola ES400 ( windows mobile 6). Пытаюсь прочитать CSV и отобразить данные в datagrid. Делаю я это так: ...

Прочитать словарь из файла csv
Здравствуйте форумчане. Помогите разобраться: есть файл со списком аккаунтов в виде login;password (";" - разделитель) f1...

9
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
12.12.2020, 00:22
Цитата Сообщение от VistaSV30 Посмотреть сообщение
Не получается
Что именно? Результат покажи - мы не экстрасенсы. Офиц. доку читал? Там кучу параметров можно настроить.

Добавлено через 3 минуты
У меня все получилось:
Python
1
2
3
4
5
6
7
8
9
10
11
12
>>> np.genfromtxt(StringIO(file), dtype= None, delimiter=";", skip_header=1, encoding="utf-8")
array([['"Белгородская обл."', '27.1.2019 0:00:00', '402,00', '0,00',
        '250000,00'],
       ['"Белгородская обл."', '1.1.2019 0:00:00', '283,00', '0,00',
        '20000,00'],
       ['"Белгородская обл."', '7.1.2019 0:00:00', '402,00', '0,00',
        '400000,00'],
       ['"Белгородская обл."', '9.1.2019 0:00:00', '88,00', '0,00',
        '0,00'],
       ['"Белгородская обл."', '18.1.2019 0:00:00', '282,00', '1,00',
        '20000,00']], dtype='<U19')
>>>
1
 Аватар для VistaSV30
987 / 331 / 79
Регистрация: 10.04.2012
Сообщений: 1,242
Записей в блоге: 4
12.12.2020, 00:31  [ТС]
Данные все-таки прочитались:
Python
1
a = np.genfromtxt('C:/Users/Arlen/Documents/Fire.csv', dtype= None, delimiter=";", skip_header=1)
Но выдает предупреждение:
VisibleDeprecationWarning: Reading unicode strings without specifying the encoding argument is deprecated. Set the encoding, use None for the system default.

Я так понимаю, надо кодировку указать. Данные получены из базы MS Access. Попробую UTF-8

Добавлено через 1 минуту
Garry Galler, Спасибо!
Пока писал, Вы уже дали ответ.
Спасибо еще раз!

Добавлено через 6 минут
С параметром: , encoding="utf-8"

Не читает и выдает:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd0 in position 1: invalid continuation byte

Без encoding="utf-8" читает, но выдает:
VisibleDeprecationWarning: Reading unicode strings without specifying the encoding argument is deprecated. Set the encoding, use None for the system default.
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
12.12.2020, 00:37
Другую кодировку нужно указать. Кодировку файла. В utf-8 это же тока на линуксе все файлы. На винде какая-нить windows-1251.
0
 Аватар для VistaSV30
987 / 331 / 79
Регистрация: 10.04.2012
Сообщений: 1,242
Записей в блоге: 4
12.12.2020, 01:02  [ТС]
Все данные прочитались и записаны в текстовом формате.
Python
1
2
3
4
5
6
7
8
a = np.genfromtxt('C:/Users/Arlen/Documents/Fire.csv',
                  dtype= None, delimiter=";", skip_header=1)
 
[['"Белгородская обл."' '27.1.2019 0:00:00' '402,00' '0,00' '250000,00']
 ['"Белгородская обл."' '1.1.2019 0:00:00' '283,00' '0,00' '20000,00']
 ['"Белгородская обл."' '7.1.2019 0:00:00' '402,00' '0,00' '400000,00']
 ['"Белгородская обл."' '9.1.2019 0:00:00' '88,00' '0,00' '0,00']
 ['"Белгородская обл."' '18.1.2019 0:00:00' '282,00' '1,00' '20000,00']]
Насколько я разобрался у genfromtxt есть возможность настроить преобразование данных в нужный формат. Стоит ли это делать? Или лучше потом переформатировать данные в массиве?
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
12.12.2020, 01:21
Цитата Сообщение от VistaSV30 Посмотреть сообщение
Стоит ли это делать?
Конечно, стоит. Возиться потом будет сложнее.
0
 Аватар для VistaSV30
987 / 331 / 79
Регистрация: 10.04.2012
Сообщений: 1,242
Записей в блоге: 4
12.12.2020, 13:52  [ТС]
Спасибо еще раз!

Скажите, а в целом какой способ импорта в Python порекомендуете для базы данных Access на 5 млн записей, где в основном числа и еще даты, время и текст?
Цель - по этим данным провести статистический анализ.

Добавлено через 8 минут
Может быть лучше будет сначала в Access таблицу с данными, например, в формате CSV, а потом работать с ней в Python?

Добавлено через 13 минут
Или может быть - PostgreSQL ?

Добавлено через 3 часа 41 минуту
Это я уже больше для себя пишу.
Для работы с неоднородными данными лучше использовать модуль pandas. NumPy использовать как вспомогательное средство
0
 Аватар для VistaSV30
987 / 331 / 79
Регистрация: 10.04.2012
Сообщений: 1,242
Записей в блоге: 4
17.12.2020, 23:29  [ТС]
Лучше сразу загружать в Pandas
Импорт базы данных в Python
0
Эксперт Python
 Аватар для dondublon
4653 / 2073 / 366
Регистрация: 17.03.2012
Сообщений: 10,183
Записей в блоге: 6
18.12.2020, 11:40
Да, numpy всё-таки больше для чисел, для разнородных данных - pandas. Но, возможно, вам и pandas не понадобится, всё можно будет сделать сразу в access, через sql. Простые операции - среднее, дисперсию - там без проблем можно вычислить.
0
 Аватар для VistaSV30
987 / 331 / 79
Регистрация: 10.04.2012
Сообщений: 1,242
Записей в блоге: 4
18.12.2020, 21:14  [ТС]
В Access конечно можно все посчитать. Мне нужно на основе данных из БД сделать шаблон текста отчета, чтобы каждый месяц не пересчитывать одни и те же показатели.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.12.2020, 21:14
Помогаю со студенческими работами здесь

Как прочитать .csv-файл
Всем привет! Как прочитать .csv-файл, чтобы на выходе получить (все пустые значения должны остаться): import csv with...

Прочитать последнюю строку в CSV файле
Здравствуйте! Написал VB скрипт для чтения CSV файла в WinCC RT Pro. подскажите как сделать так чтоб скрипт читал последние значения в ...

Прочитать файл csv, используя Split
короче есть файл dbtechtreenode.csv хочу прочитать и заполнить таблицу текстом, через кому между комами текст тот что нужен вот...

Прочитать и достать столбец из файла csv
Здравствуйте, такой вопрос: есть файл csv нужно из него взять конкретный столбец и записать в файл

Не получается прочитать .xls или .csv с кириллицей
def read_excel(path): with open(path, encoding='utf-8') as f: print(f) excel_data = pandas.read_csv(f) ...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды "Заполнить" и "Очистить" на форме документа
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". На примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных выбран регистр накопления, в. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru