不含标题的CSV中的熊猫图

时间:2018-11-07 19:39:22

标签: python python-3.x pandas numpy matplotlib

我是第一次使用python绘制图表。有人告诉我使用以下命令将Pandas用于此目的。现在假设csv文件具有标头(timespeed等)。但是,如何将其更改为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 :(得分:1)

您可以尝试

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

答案 1 :(得分:1)

我可能会误解您的问题,但我会尽力而为。

问题似乎是您必须读取没有头的csv,但要添加它们。我将使用以下代码:

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

对于您的绘图,经我的更正,您使用的代码应该可以。我也建议您查看 matplotlib 来绘制图形。

答案 2 :(得分:1)

Pandas更专注于数据结构和数据分析工具,实际上它通过使用Matplotlib作为后端来支持绘图。如果您有兴趣在Python中构建不同类型的图,则可能需要检查一下。

回到Pandas,Pandas假定csv的第一行是标题。但是,如果您的文件没有标题,则可以将header=None作为参数pd.read_csv("P1541350772737.csv", header=None)进行传递,然后像现在一样对其进行绘制。

您可以在Pandas read_csv documentation上找到可以传递给Pandas读取csv的命令的完整列表,在那里您会找到许多有用的命令(例如,跳过行,定义索引列等) )

编码愉快!

答案 3 :(得分:1)

对于大多数命令,您可以在相应的文档中找到帮助。看着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

答案 4 :(得分:1)

您可以通过列的索引指定x和y,因此不需要列名:

非常简单:df.plot(figsize=(15,5), kind='line',x=0, y=1)

如果x列为第一列,而y列为第二列,依此类推,则从0开始对列进行计数

例如:

enter image description here

与列名而不是位置相同的结果: enter image description here