Сюжетная диаграмма в Pandas из CSV без заголовков - PullRequest
0 голосов
/ 07 ноября 2018

Я новичок в построении диаграмм в Python. Мне сказали использовать для этого Панд, используя следующую команду. Сейчас предполагается, что файл csv имеет заголовки (time, speed и т. Д.). Но как я могу изменить его, если у файла csv нет заголовков? (данные начинаются со строки 0)

import matplotlib.pyplot as plt
import numpy as np
import pandas as pd

df  = pd.read_csv("P1541350772737.csv")
#df.head(5)
df.plot(figsize=(15,5), kind='line',x='timestamp', y='speed') # scatter plot

Ответы [ 5 ]

0 голосов
/ 07 ноября 2018

Вы можете указать x и y по индексу столбцов, для этого вам не нужны имена столбцов:

Очень просто: df.plot(figsize=(15,5), kind='line',x=0, y=1)

Работает, если столбец x является первым, а столбец y - вторым и т. Д., Столбцы нумеруются с 0

Например:

enter image description here

Тот же результат с именами столбцов вместо позиций: enter image description here

0 голосов
/ 07 ноября 2018

Для большинства команд вы найдете помощь в соответствующей документации. Глядя на pandas.read_csv , вы найдете аргумент names

names: как у массива, по умолчанию нет
Список имен столбцов для использования. Если файл не содержит строку заголовка, то вы должны явно передать заголовок = нет.

Таким образом, вы захотите указать имена столбцов, по которым они появляются в кадре данных.

Например: предположим, у вас есть этот файл данных

1, 2
3, 4
5, 6

Тогда вы можете сделать

import matplotlib.pyplot as plt
import pandas as pd
df = pd.read_csv("data.txt", names=["A", "B"], header=None)
print(df)
df.plot(x="A", y="B")

plt.show()

который выводит

   A  B
0  1  2
1  3  4
2  5  6

enter image description here

0 голосов
/ 07 ноября 2018

Возможно, я неправильно истолковал ваш вопрос, но я сделаю все возможное.

Кажется, проблема в том, что вам нужно прочитать csv, у которого нет заголовка, но вы хотите добавить их. Я бы использовал этот код:

cols=['time', 'speed', 'something', 'else'] 
df = pd.read_csv('useful_data.csv', names=cols, header=None)

Для вашего сюжета код, который вы использовали, должен соответствовать моей поправке. Я бы также предложил взглянуть на matplotlib , чтобы сделать свой график.

0 голосов
/ 07 ноября 2018

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

Возвращаясь к Пандам, Панды предполагают, что первая строка вашего csv является заголовком. Однако, если у вашего файла нет заголовка, вы можете передать header=None в качестве параметра pd.read_csv("P1541350772737.csv", header=None) и затем построить его так, как вы это делаете прямо сейчас.

Полный список команд, которые вы можете передать Pandas для чтения csv, можно найти по адресу Документация Pandas read_csv , там вы найдете много полезных команд (таких как пропуск строк, определение столбец индекса и т. д.)

Удачного кодирования!

0 голосов
/ 07 ноября 2018

Вы можете попробовать

df  = pd.read_csv("P1541350772737.csv", header=None)

с помощью names -kwarg вы можете установить произвольные заголовки столбцов, это подразумевает headers=None, то есть чтение данных из строки 0.

Вы также можете проверить документ https://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...