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

我想要检索我的B、C和D值(从重力传感器检索)。
我在我的Jupyter Notebook中尝试过的代码:
import numpy as np
import matplotlib.pyplot as plt
data_file = np.genfromtxt("Gravity.csv", delimiter="", names=["A","B","C","D"])
plt.plot(data_file['A'], data_file['B'],data_file['C'],data_file['D'])
plt.show()发布于 2020-09-24 22:10:41
我将你的文件转换成这样的格式
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')这是可行的

发布于 2020-09-24 22:35:00
我认为您的问题是,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()发布于 2020-09-24 22:08:09
数据中有四列(A、B、C和D),但只提供了三个列名(B、C和D)。因此它将名称B链接到数据中的列A,依此类推。数据中的列D会像这样被忽略,因此您需要指定四个名称,以便可以像您预期的那样查询每列。
此外,使用pandas可以很好地处理列数据。
import pandas as pd
data_file = pd.read_csv("Gravity.csv", names = ['A', 'B', 'C', 'D'])https://stackoverflow.com/questions/64047920
复制相似问题