首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从csv文件中读取某一列?

如何从csv文件中读取某一列?
EN

Stack Overflow用户
提问于 2019-04-14 08:52:43
回答 2查看 103关注 0票数 1

我有一个CSV文件(带有CNC数据),它有大约10,000行和6列。我需要读取列4、5和6,它们是x、y和z坐标,并使用matplotlib构建3D图。

有人能帮助如何从csv文件中读取某一列吗?

这就是我现在拥有的:

代码语言:javascript
复制
import numpy as np
import json
from datetime import datetime
from numpy import genfromtxt
from datetime import timezone
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import axes3d
import csv

data_open = open("cnc_data.txt").read()
data_open = data_open.split("\n")
data=[]
tmp=[]
for x in range (len(data_open)):
    data.append(json.loads (data_open[x]))
    data[x]["timestamp"]=datetime.strptime(data[x]["timestamp"], '%Y-%m-%d %H:%M:%S.%f')
    data[x]["timestamp"]=data[x]["timestamp"].replace(tzinfo=timezone.utc).timestamp()
    tmp.append(list(data[x].values()))
np.savetxt("CNC.csv", tmp, fmt='%f')
figure = plt.figure()
axis = figure.add_subplot(1,1,1, projection = '3d')
h=0
while h < len(data) :
    X= [data[h]["analogInputValueX"]]
    Y= [data[h]["analogInputValueY"]]
    Z= [data[h]["analogInputValueZ"]]
    print (X)
    print (Y)
    print (Z)
    h = h + 1
    plt.plot(X, Y, Z)
axis.set_xlabel('x-axis')
axis.set_ylabel('y-axis')
axis.set_zlabel('z-axis')
plt.show()
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-04-14 10:46:37

我想你会发现熊猫适合你的需要。它有一些非常棒的数据操作工具。

示例代码:

代码语言:javascript
复制
import pandas as pd

df = pd.read_csv('/path/to/csv/file')  # You can use the 'delimiter' argument to specify a delimiter of your choosing
x_column = df.iloc[:, 3]
y_column = df.iloc[:, 4]
z_column = df.iloc[:, 5]

代码的其余部分(绘图等)应该保持不变

票数 1
EN

Stack Overflow用户

发布于 2019-04-14 09:26:34

我不知道什么是CNC数据,但我知道如何从CSV文件中读取特定的列。

我希望我的密码能帮到你。

csv数据

代码语言:javascript
复制
1,2,3,4,5,6
1,2,3,4,5,6
1,2,3,4,5,6
1,2,3,4,5,6
1,2,3,4,5,6
1,2,3,4,5,6
1,2,3,4,5,6
1,2,3,4,5,6
1,2,3,4,5,6
1,2,3,4,5,6

改为4、5、6

代码语言:javascript
复制
#open file
fo = open("test.csv")
#create empty list
ls = []
x_columns = []
y_columns = []
z_columns = []
#read data row by row
for line in fo:
    line = line.replace("\n","")
    ls = list(line.split(","))
    x_cloumns.append(ls[3])
    y_cloumns.append(ls[4])
    z_cloumns.append(ls[5])
fo.close

print(x_columns,y_columns,z_columns)

输出

代码语言:javascript
复制
['4', '4', '4', '4', '4', '4', '4', '4', '4', '4']
['5', '5', '5', '5', '5', '5', '5', '5', '5', '5']
['6', '6', '6', '6', '6', '6', '6', '6', '6', '6']
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55673533

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档