Как построить график из csv файла python
Перейти к содержимому

Как построить график из csv файла python

  • автор:

Как реализовать построение графика из данных CSV файла?

Нужно реализовать построение графика, исходя из этих данных. За ось X отвечают года, за Y- данные из последнего столбца. Создаю следующий фрейм:

data = pd.read_csv('путь к файлу', skiprows=c,nrows=d). data2 = pd.DataFrame(data,columns=['A','B','C','D','E','F','G']) 

Параметры пропуска я получаю при запуске, т.е. возможны варианты вывода графика как с 1981 по 1985, так и с 1983-1985. Таким образом я рассчитывал реализовать пропуск ненужных данных при считывании. Далее, делаю еще одну переменную, которая должна в себе содержать только последний столбец:

df = pd.DataFrame(data2['G']) 

введите сюда описание изображения

И соответственно, теперь осталось использовать этот набор данных для построения графика. Проблема в том, что в переменную df записываются NaN . Как это грамотно (или же хоть как-то) реализовать, чтобы я сам это смог понять? csv файл https://dropmefiles.com/4vUsn
если взять ваш пример, то график получается линией, как раз то что мне и нужно, при использовании данных с другого файла, картина меняется, не подскажете, как изменить его вид? Пробовал стиль графика менять, закончилось тем, что график становился просто линией внизу

Построение графиков по csv

Построение графиков
Написать программу, которая строит графики непрерывных функций одной переменной. Мне нужны примеры.

Построение графиков
В файле sunspots.txt содержатся данные количества солнечных затмений за каждый месяц, начиная с.

Построение графиков
Здравствуйте! Столкнулся с одной проблемой. Строю экспоненциальное распределение на Python с.

Построение графиков на Python
Подскажите пожалусто как построить график в питоне. Мучаюсьс этим очень долго уже

Pandas построение графиков
У меня есть DataFrame. В нём есть колонки, time и some_data. Можно ведь как-то создать график .

87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Построение графиков в Python
Очень нужна помощь, с синтаксисом и библиотеками(Python 3.4 или Wing) для создания графика.

Построение графиков в Python
Построение графиков в Python Задание В файле sunspots.txt содержатся данные количества солнечных.

Чтение csv файла и построение графика
Нужно прочитать csv файл и выполнить построение графика на экране монитора по каналам (по одному на.

Работа с com портами и построение графиков
Всем привет! Есть необходимость создать веб сервер на linux, который работает с несколькими.

Некорректное построение графиков: matplotlib
Здравствуйте! Почему в matplotlib график (прямые линии) строятся не совсем от заданных координат по.

Построение графиков и решение нелинейного уравнения
Нужна помощь . 1)Графически исследовать решение нелинейного уравнения и получить все (если.

Строим графики в Python с помощью библиотеки matplotlib

Далее показан пример, того как просто на Python можно строить различного рода графики. Код прокомментирован. Данные взяты из Файла SalesData_limit.csv, который лежит рядом со скриптом. Содержимое файла SalesData_limit.csv:

Date,Sales
01/01,150000
01/02,100000
01/03,80000
01/04,70000
01/05,120000
01/06,100000
01/07,180000
01/08,160000
01/09,190000
01/10,200000
01/11,220000
01/12,350000

Код скрипта (файл main.py):

import pandas as pd
from matplotlib import pyplot as plt
from matplotlib import style
from dateutil import parser as dt_parser

# Загружаем данные из csv файла
# sep — формат данных на основе регулярных выражений, чтобы не быдо ошибок
data = pd.read_csv(‘./SalesData_limit.csv’,sep=r’\s*,\s*’, header=0, encoding=’utf8′, engine=’python’)

# стиль графика
style.use(‘ggplot’)

# преобразуем значения из csv в понятный для библиотеки формат
x = data[‘Date’].to_numpy()
y = data[‘Sales’].to_numpy()

# даем название осям и графику
plt.xlabel(‘Дата’)
plt.ylabel(‘Продажи’)
plt.title(‘Анализ продаж за 2019 год’)

# рисуем точки
plt.plot(x, y)

# показываем график
plt.show()

C:/> python main.py

Результат — картинка в начале статьи.

Создано 14.05.2020 13:23:07

  • Михаил Русаков
  • Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

    Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
    Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

    Если Вы не хотите пропустить новые материалы на сайте,
    то Вы можете подписаться на обновления: Подписаться на обновления

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

    Порекомендуйте эту статью друзьям:

    Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

    1. Кнопка:
      Она выглядит вот так:
    2. Текстовая ссылка:
      Она выглядит вот так: Как создать свой сайт
    3. BB-код ссылки для форумов (например, можете поставить её в подписи):

    Комментарии ( 0 ):

    Для добавления комментариев надо войти в систему.
    Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.

    Copyright © 2010-2023 Русаков Михаил Юрьевич. Все права защищены.

    Pandas на практических примерах

    Это дополнение к «Основы Pandas». Вместо теоретического вступления в миллион особенностей Pandas — 2 примера:

    1. Данные с космического телескопа «Хаббл».
    2. Датасет о заработной плате экономически активного населения США.

    Данные «Хаббла»

    Начнем с данных «Хаббла». В первую очередь речь пойдет о том, как читать простой csv-файл и строить данные:

    Начнем с данных с космического телескопа «Хаббл», одного из известнейших телескопов.

    Данные очень простые. Файл называется hubble_data.csv. Его можно открыть даже в Microsoft Excel или OpenOffice. Вот как он будет выглядеть в этих программах:

    Вид csv файла

    Данные в формате CSV. Это очень популярный формат в первую очередь из-за своей простоты. Его можно открыть в любом текстовом редакторе. Попробуйте.

    Будет видно, что CSV-файлы — это всего лишь разные значения, разделенные запятой (что, собственно, и подразумевается в названии — comma-separated values).

    Это основная причина популярности формата. Для него не нужно никакое специальное ПО, даже Excel. Это также значит, что данные можно будет прочесть и через 10 лет, когда появятся новые версии электронных таблиц.

    Начнем. Откройте экземпляр Ipython (Jupyter) и запустите следующий код.

    import pandas as pd import matplotlib.pyplot as plt %pylab inline 

    Это импортирует pandas — основную библиотеку в Python для анализа данных. Также импортируется matplotlib для построения графиков.

    %pylan inline — это команда Ipython, которая позволяет использовать графики в работе.

    data = pd.read_csv("hubble_data.csv") data.head() 

    Pandas значительно упрощает жизнь. Прочесть файл csv можно с помощью одной функции: read_csv() .

    Теперь можно вызвать функцию head() , чтобы вывести первые пять строк.

    distance recession_velocity
    0 0.032 170
    1 0.034 290
    2 0.214 -130
    3 0.263 -70
    4 0.275 -185

    Pandas — довольно умная библиотека. Это проявляется в том, что она понимает, что первая строка файла — это заголовок. Вот как выглядят первые 3 строки CSV-файла:

    distance,recession_velocity .032,170 .034,290 

    Теперь можно увидеть, что заголовок в верхней части действительно есть. Он называет две колонки: distance и recession_velocity .

    Pandas корректно распознает это.

    А что делать, если заголовка нет? Можно прочесть файл, вручную указав заголовки. Есть еще один файл hubble_data_no_headers.csv без заголовков. Он не отличается от предыдущего за исключением отсутствующих заголовков.

    Вот как читать такой файл:

    headers = ["dist","rec_vel"] data_no_headers = pd.read_csv("hubble_data_no_headers.csv", names=headers) data_no_headers.head() 

    Здесь объявляются собственные заголовки ( headers ). У них другие имена ( dist и rec_vel ), чтобы было явно видно, что это другой файл.

    Данные читаются таким же способом, но в этот раз передаются новые переменные names=headers . Это сообщает Pandas, что нужно использовать их, поскольку в файле заголовков нет. Затем выводятся первые пять строк.

    dist rec_vel
    0 0.032 170
    1 0.034 290
    2 0.214 -130
    3 0.263 -70
    4 0.275 -185

    Pandas позволяет увидеть только одну колонку:

    data_no_headers["dist"] 0 0.032 1 0.034 2 0.214 3 0.263 4 0.275 

    Теперь, когда данные есть, на их основе нужно построить график.

    Проще всего добиться этого, избавившись от индексов. Pandas по умолчанию добавляет номера (как и Excel). Если посмотреть на структуру данных, будет видно, что левая строка имеет значения 0,1,2,3,4. .

    Если заменить номера на distance , тогда построение графиков станет еще проще. distance станет осью x, а velocity — осью y.

    Но как заменить индексы?

    data.set_index("distance", inplace=True) data.head() 
    distance recession_velocity
    0.032 170
    0.034 290
    0.214 -130
    0.263 -70
    0.275 -185

    При сравнении с прошлым примером можно увидеть, что номера пропали. Более того, данные теперь расположены в соотношении x — y.

    Создать график теперь еще проще:

    data.plot() plt.show() 

    Пример графика pandas

    Данные о заработной плате

    Теперь данные о заработной плате. Этот пример построен на предыдущем и показывает, как добавлять собственные заголовки, работать с файлами, разделенными отступами, и извлекать колонки из данных:

    Этот пример посложнее.

    Откройте ноутбук. Начнем, как и раньше, с импорта необходимых модулей и чтения CSV-файла. В данном случае речь идет о файле wages_hours.csv.

    import pandas as pd import matplotlib.pyplot as plt %pylab inline data = pd.read_csv("wages_hours.csv") data.head() 

    Все как раньше. Нужно ведь просто прочесть файл? Но результат получается следующий:

    HRS RATE ERSP ERNO NEIN ASSET AGE DEP RACE SCHOOL
    0 2157\t2.905\t1121\t291\t380\t7250\t38.5\t2.340…
    1 2174\t2.970\t1128\t301\t398\t7744\t39.3\t2.335…
    2 2062\t2.350\t1214\t326\t185\t3068\t40.1\t2.851…
    3 2111\t2.511\t1203\t49\t117\t1632\t22.4\t1.159\…
    4 2134\t2.791\t1013\t594\t730\t12710\t57.7\t1.22…

    Выглядит непонятно. И совсем не похоже на оригинальный файл.

    Что же случилось?

    В CSV-файле нет запятых

    Хотя название подразумевает «Значения, Разделенные Запятыми», данные могут быть разделены чем угодно. Например, отступами.

    \t в тексте означает отступы. Pandas не может разобрать файл, потому что библиотека рассчитывала на запятые, а не на отступы.

    Нужно прочитать файл еще раз, в этот раз передав новую переменную sep=’\t’ . Это сообщит, что разделителями выступают отступы, а не запятые.

    data = pd.read_csv("wages_hours.csv", sep="\t") data.head() 
    HRS RATE ERSP ERNO NEIN ASSET AGE DEP RACE SCHOOL
    0 2157 2.905 1121 291 380 7250 38.5 2.340 32.1 10.5
    1 2174 2.970 1128 301 398 7744 39.3 2.335 31.2 10.5
    2 2062 2.350 1214 326 185 3068 40.1 2.851 * 8.9
    3 2111 2.511 1203 49 117 1632 22.4 1.159 27.5 11.5
    4 2134 2.791 1013 594 730 12710 57.7 1.229 32.5 8.8

    Но тут довольно много данных. Нужны ли они все?

    В этом проекте необходимы только AGE (возраст) и RACE (ставка заработной платы). В первую очередь необходимо извлечь только эти две колонки.

    data2 = data[["AGE", "RATE"]] data2.head() 
    AGE RATE
    0 38.5 2.905
    1 39.3 2.970
    2 40.1 2.350
    3 22.4 2.511
    4 57.7 2.791

    Чтобы составить грамотный график, необходимо расположить возраст по порядку: возрастания или убывания.

    Сделаем в порядке убывания (потому что это поведение по умолчанию для функции sort() ).

    data_sorted = data2.sort(["AGE"]) data_sorted.head() 

    Как и в прошлый раз, нужно убрать числа, а вместо них использовать значения возраста, чтобы упростить процесс построения графика.

    data_sorted.set_index("AGE", inplace=True) data_sorted.head() 
    AGE RATE
    22.4 2.511
    37.2 3.015
    37.4 1.901
    37.5 1.899
    37.5 3.009
    data_sorted.plot() plt.show() 

    пример графика pandas

    Можно увидеть, что ставка повышается до 35 лет, а потом начинает сильно меняться.

    Конечно, это общий универсальный показатель. Из этого набора данных можно сделать лишь отдельные выводы.

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *