在不知道文件名的情况下,在文件夹中读取和附加csv文件?

时间:2016-10-08 07:15:18

标签: python

是否可以在代码所在的文件夹中查找CSV文件,并将几个CSV文件附加在一起?

我目前的代码是这样的:

data = np.loadtxt('csv data file.csv', delimiter=',', skiprows=1)

我必须将csv文件组合在一起并为其指定名称。 我希望能够完成上述操作并将完整的文件放入一个并将其分配给数据,以便在不知道文件名的情况下进行一些数据操作和绘图。

我知道我可以在熊猫这样做:

path =r'C:\DRO\DCL_rawdata_files'
allFiles = glob.glob(path + "/*.csv")
frame = pd.DataFrame()
list_ = []
for file_ in allFiles:
    df = pd.read_csv(file_,index_col=None, header=0)
    list_.append(df)
frame = pd.concat(list_)

但是为了简单起见,我试图避免添加任何额外的模块。那么这可以用numpy完成吗?

1 个答案:

答案 0 :(得分:0)

"了解文件的名称" 与此问题无关。

的示例中,此行后文件名已知

allFiles = glob.glob(path + "/*.csv")

现在allFiles包含所有文件名。然后,循环遍历文件名,加载每个文件并将加载的数据附加到list_可以完全相同。

唯一特殊的事情是将所有数据合并到一个数据集中:

frame = pd.concat(list_)

同样,numpy也有类似的功能:numpy.concatenate

所以,总之,numpy:

import numpy as np

path =r'C:\DRO\DCL_rawdata_files'
filenames = glob.glob(path + "/*.csv")
all_data = []
for filename in filenames:
    data = np.loadtxt(filename, delimiter=',', skiprows=1)
    all_data.append(data)
result = np.concatenate(all_data)