Python 打印/绘制此csv文件

Python 打印/绘制此csv文件,python,numpy,matplotlib,Python,Numpy,Matplotlib,我对Python完全陌生,并决定作为一名工程师在机器学习课程中学习Python,但是我在从csv文件中检索值时遇到困难,如下所示: 在这里,我要检索我的B、C和D值(从重力传感器检索) 我在Jupyter笔记本中尝试过的代码: 将numpy导入为np 将matplotlib.pyplot作为plt导入 data_file=np.genfromtxt(“Gravity.csv”,delimiter=”,name=[“A”、“B”、“C”、“D”]) plt.plot(数据文件['A']、数据文件

我对Python完全陌生,并决定作为一名工程师在机器学习课程中学习Python,但是我在从csv文件中检索值时遇到困难,如下所示:

在这里,我要检索我的B、C和D值(从重力传感器检索)

我在Jupyter笔记本中尝试过的代码:

将numpy导入为np
将matplotlib.pyplot作为plt导入
data_file=np.genfromtxt(“Gravity.csv”,delimiter=”,name=[“A”、“B”、“C”、“D”])
plt.plot(数据文件['A']、数据文件['B']、数据文件['C']、数据文件['D'])
plt.show()

您的数据中有四列(
A
B
C
D
),但您只提供了三列名称(
B
C
D
)。因此它将name
B
链接到数据中的列
A
,以此类推。数据中的列
D
会像这样被忽略,因此您需要指定四个名称,以便按预期查询每列

此外,使用
pandas
可以很好地处理列数据

将熊猫作为pd导入
数据文件=pd.read\u csv(“Gravity.csv”,名称=['A','B','C','D'])

我已将您的文件转换为此格式

A,B,C,D

0.1, 0.5, 0.1, 0.8

0.2, 0.1, 0.4, 0.1

0.1, 0.3, 0.1, 0.1 
并使用以下代码

import pandas as pd
values= pd.read_csv('./test.csv')
这很有效


我认为您的问题在于
np.genfromtxt
也对索引列(值从1到9)和标题进行编码,因此当您认为您正在选择列
'B'
时,实际上您正在选择列
A
,依此类推

这应该行得通

import numpy as np    
import matplotlib.pyplot as plt
    
data_file = np.genfromtxt("Gravity.csv", delimiter=",", names=["index", "A","B","C","D"], skip_header=1)
    
plt.plot(data_file['B'],data_file['C'],data_file['D'])    
plt.show()
和一个工作的例子相同的概念,但与人工数据

import pandas as pd
data = pd.DataFrame({'a':[1,2,3], 'b':[2,3,4], 'c':[4,5,6], 'd':[7,8,9]})
data.to_csv('./data.csv')
data2 = np.genfromtxt('./data.csv', delimiter=",", names=["index", "A","B","C","D"], skip_header=1)
plt.plot(data2['B'], data2['C'], data2['D'])
plt.show()

空括号是您为了隐私而删除的具体值,还是它们只是表示空值的空括号?为了隐私(插入图像的惰性,我刚刚插入),它们实际上不是空的,并且包含0.123123、0.12121、9.8等值。我刚刚插入的图像来自csv文件(使用android应用程序收集,存储为csv文件,并在excel中显示)到底是什么问题?你有没有收到任何错误消息?你的代码看起来不错,假设
data\u file
是你发布的csv。我的问题的屏幕截图是,它实际上没有为我绘制任何内容,而行本身没有给出真正的错误。是的,它是名为Gravity.csv的屏幕截图中的csv。我尝试添加了“A”同样。但是,出于某种原因,它没有为我绘制任何内容?不确定我是否也需要添加第一列?(行号所在的位置)这没有意义。下面的代码工作得非常好
data2=pd.DataFrame({'a':[1,2,3],'b':[2,3,4],'c':[4,5,6],'d':[7,8,9])
plt.plt(data2['b'],data2['c'],data2['d'])
plt.show()
您试图绘制什么(即,您希望从图表中获得什么信息)?X和Y(B和C)的加速度除了D.@JacoSolari的重力之外,这不是一种不同的方法吗?我同意它适用于
pandas
,但原始方法使用
np.genfromtxt
。对于代码的data\u file=np.genfromtxt行,我得到了以下错误:ValueError,无法将长度为4的元组分配给具有5个字段的结构。您可以吗通过代码成功加载后运行
print(data_file['A'])
?打印输出是什么?打印输出似乎是正确的。因为它是1.6009、1.6009等。但是,我不能在前面添加“index”,但因为我从A获得了正确的值,我想我不需要“index”在前面。奇怪的是,它不会在jupyter笔记本中显示我的绘图。我的其他示例是否有效?如果没有,您可能会面临笔记本配置问题?关于您的另一个人工数据示例,它说numpy没有任何称为DataFrame和“to_csv”的属性。如果我想以常规格式使用它,我该怎么办?目前我已经使用pandas加载了我的csv文件,它只用于写入值并打印出值。但当我打印它时,它不起作用,因为它找不到关键字“A”。你的常规格式是什么?…它会打印出值。但当我打印它时,它不起作用…”.你是什么意思?我的常规格式是上面打印的格式。打印是指绘图(我这方面的词选得不好);例如,我可以看到,当我简单地写“值”时,所有值都是正确的。但我从来没有成功地“绘图”因为我得到了一个错误,它找不到关键字,例如“A”。你的csv文件有标题吗?
.keys
产生了什么?是A、B、C吗?你用来绘图的命令是什么?如果你指定的不是标题的东西,你只能得到一个KeyError。我发现这个答案或这些注释都有帮助请考虑投票。