matplotlib Pandas中的绘图,来自CSV,无标题

oipij1gg  于 2023-02-19  发布在  其他
关注(0)|答案(6)|浏览(129)

我刚开始用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
qhhrdooz

qhhrdooz1#

你可以通过列的索引来指定x和y,你不需要列的名字:
很简单:df.plot(figsize=(15,5), kind='line',x=0, y=1)
如果x列是第一列,y列是第二列,以此类推,则此方法有效,列从0开始计数
例如:

使用列名而不是位置,结果相同:

svujldwt

svujldwt2#

我可能误解了你的问题,但我会尽力的。
这个问题似乎是你必须读取一个没有头文件的csv文件,但是你想添加它们。我会使用下面的代码:

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

对于你的绘图,你使用的代码应该可以接受我的修正。我还建议你看看 matplotlib 来做你的图形。

d8tt03nd

d8tt03nd3#

你可以试试

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

fwzugrvs

fwzugrvs4#

Pandas更专注于数据结构和数据分析工具,它实际上支持使用Matplotlib作为后端的绘图。如果你对用Python构建不同类型的绘图感兴趣,你可能想看看它。
回到Pandas,Pandas假设csv的第一行是头文件,但是,如果你的文件没有头文件,你可以传递header=None作为参数pd.read_csv("P1541350772737.csv", header=None),然后像现在这样绘制它。
您可以传递给Pandas阅读csv的完整命令列表可以在Pandas read_csv documentation中找到,您将在那里找到许多有用的命令(例如跳过行、定义索引列等)。
快乐编码!

i7uq4tfw

i7uq4tfw5#

对于大多数命令,您可以在相应的文档中找到帮助。查看pandas.read_csv,您会发现一个参数names
names:类似于阵列,默认为无
要使用的列名列表。如果文件不包含标题行,则应显式传递header = None。
因此,您将需要提供列名称,它们将按照该名称出现在 Dataframe 中。
例如:假设您有此数据文件

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

i5desfxk

i5desfxk6#

左上角有一个-B标签。我不想看到它。有办法隐藏这个标签吗?

相关问题