首页 > 解决方案 > 将特定的 csv 列读入数组(Python)

问题描述

所以我有一个这样的数据列表:

"Load (lbf)","Time (s)","Extension (in)","Stress (ksi)","Strain (in/in)"

103.2,0.30,0.008,1.160,0.00228
172.4,0.50,0.009,1.939,0.00246
241.8,0.70,0.010,2.718,0.00264
311.2,0.90,0.010,3.500,0.00282...

我本质上想要做的是将它转换为一个制表符分隔的表格,以便它可以复制粘贴到原点或 excel 中。这样做的计划是将每一列读入一个数组,然后用制表符作为分隔符将其写回。问题是我在编写代码方面几乎没有接受过正式培训,而且我已经几个月没有做过了,所以在 SE 上四处阅读并不是特别有帮助(人们很少会逐行解释他们的代码是做什么的。) 'm running into is reading data 似乎不想玩。我试过了:

file=str(input("enter filepath: "))
hdr=int(input("enter number of lines before data: "))
def read(file, convert=float, sep=","):
    with open(file) as f:
        for i in range(hdr):
            next(f)

        for line in f:
            load.append(col[1])

也:

file=str(input("enter filepath: "))
hdr=int(input("enter number of lines before data: "))
def read(file, convert=float, sep=","):
     with open(file) as f:
        for i in range(hdr):
            next(f)
        for line in f:

          extension.append[convert(line.split(sep=',')[3]) for line in f]

没有抛出任何错误,但它什么也不做。任何提示都会很有帮助。

标签: python-3.xfile-io

解决方案


您可能想要利用pandas专门处理和操作数据的包。特别是,有一个read_csv函数可以接收 csv 并将其保存为 DataFrame(Panda 的数据结构)。然后您可以将其重新输出为另一个 csv,但这一次,将分隔指定为 tabs \t

import pandas as pd
data = pd.read_csv('data.csv')  # load dataset into a Pandas dataframe
data.head()  # inspect first 5 rows in your dataset to make sure all is well
data.to_csv('new_data.csv', sep='\t', index=False)  # output with tab separated values

推荐阅读