【发布时间】:2018-10-24 13:23:27
【问题描述】:
我有一个脚本,当前从 .csv 文件读取原始数据并对数据执行一些 pandas 数据分析。目前 .csv 文件是硬编码的,读取方式如下:
data = pd.read_csv('test.csv',sep="|", names=col)
我想改变两件事:
我想把它变成一个循环,这样它就会遍历一个 .csv 文件的目录,并在脚本中每个文件下面执行 pandas 分析。
我想获取每个 .csv 文件并剥离“.csv”并将其存储在另一个列表变量中,我们称之为“new_table_list”。
我想我需要像下面这样的东西,至少在第一点(尽管我知道这并不完全正确)。我不知道如何解决第二点
感谢任何帮助
import os
path = '\test\test\csvfiles'
table_list = []
for filename in os.listdir(path):
if filename.endswith('.csv'):
table_list.append(file)
data = pd.read_csv(table_list,sep="|", names=col)
【问题讨论】:
-
你需要使用
os.path.join(path, filename)来获取要读取的文件的全名 -
read_csv的第一个参数必须是文件名,而不是文件名列表。 -
@Barmar 啊,好的。所以 read_csv 不能带参数?必须是单个文件名吗?好的,我需要改变我认为的方法。谢谢
-
是的,它需要一个参数。该参数必须是可以读取的文件名或已打开的文件对象。
-
read_csv一次只能读取一个 CSV 文件,不能读取table_list中的所有文件。