如何将csv文件导入数据数组?

uhry853o  于 2023-07-31  发布在  其他
关注(0)|答案(4)|浏览(127)

我在一个脚本中有一行代码,它将值之间有大量空格的文本文件中的数据导入到一个数组中,供以后使用。

textfile = open('file.txt')
data = []
for line in textfile:
    row_data = line.strip("\n").split()
    for i, item in enumerate(row_data):
        try:
            row_data[i] = float(item)
        except ValueError:
            pass
    data.append(row_data)

字符串
我需要把它从文本文件改成csv文件。我不想只更改此文本以逗号分隔(因为如果某些值在引号中,则可以使用逗号)。幸运的是,我看到有一个csv库可以处理这个问题。

import csv
with open('file.csv', 'rb') as csvfile:
    ???


如何将csv文件加载到数据数组中?
如果有区别,这就是数据的使用方式:

row = 0
for row_data in (data):
    worksheet.write_row(row, 0, row_data)
    row += 1

zphenhs4

zphenhs41#

假设CSV文件用逗号分隔,在Python 3中使用csv模块的最简单方法可能是:

import csv

with open('testfile.csv', newline='') as csvfile:
    data = list(csv.reader(csvfile))

print(data)

字符串
您可以指定其他分隔符,例如制表符,方法是在创建csv.reader时指定它们,如果列之间有多个空格符号,还可以将skipinitialspace=True添加到csv.reader调用中:

data = list(csv.reader(csvfile, delimiter='\t'))


对于Python 2,使用open('testfile.csv', 'rb')打开文件。

7fyelxc5

7fyelxc52#

您可以使用pandas库或numpy来读取CSV文件。如果你的文件是制表符分隔的,那么在下面的sepdelimiter参数中使用'\t'代替逗号。

import pandas as pd 
myFile = pd.read_csv('filepath', sep=',')

字符串
或者

import numpy as np
 myFile = np.genfromtxt('filepath', delimiter=',')

mbjcgjjk

mbjcgjjk3#

我认为最简单的方法是通过Pandas:

import pandas as pd
data = pd.read_csv(FILE).values

字符串
这将从CSV创建的DataFrame返回一个Numpy数组的值。参见文档here

euoag5mw

euoag5mw4#

这个方法对我也有效。示例:具有随机数据,并且每个数据点从换行符开始,如下所示:

'dog',5,2
 'cat',5,7,1
 'man',5,7,3,'banana'
 'food',5,8,9,4,'girl'
import csv
with open('filePath.csv', 'r') as readData:
readCsv = csv.reader(readData)
data = list(readCsv)

相关问题