是否可以在代码所在的文件夹中查找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完成吗?
答案 0 :(得分:0)
"了解文件的名称" 与此问题无关。
在pandas的示例中,此行后文件名已知:
allFiles = glob.glob(path + "/*.csv")
现在allFiles
包含所有文件名。然后,循环遍历文件名,加载每个文件并将加载的数据附加到list_
。 numpy可以完全相同。
唯一特殊的事情是将所有数据合并到一个数据集中:
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)