我有3套不同的文件集要导入到数据帧中,这些数据帧最终将插入到MS sql表中。文件可能具有也可能没有标题记录。在插入表之前,我将能够对与表列匹配的数据框列进行硬编码并加载到表中。
我的文件已经过SFTP处理,并且可以在Windows目录中使用3种不同的命名约定进行访问。
我尝试了许多发布在此处(Import multiple csv files into pandas and concatenate into one DataFrame)的选项,但是没有任何满足我需要的选项。
path = WorkDir
mypattern = "\\"+"*Category.csv"
print(WorkDir+mypattern)
allFiles = glob.glob(WorkDir+mypattern)
np_arr_list = []
for file_ in allFiles:
print(file_)
df = pd.read_csv(file_,index_col=None, header=0)
np_arr_list.append(df)
big_frame = pd.concat(np_arr_list, ignore_index=True)
,对于其他2种文件类型,例如* CategoryRelations.csv和* CategorProdRelations
,我将重复相同的操作我想知道如何将它们放入函数中,以便仅将路径和模式(文件命名模式)传递给函数并返回级联的数据帧。
在将每种文件类型分别插入表之前,我将进一步在数据框中添加列。
在上面,我得到以下错误:
E:\ETL\Python\Client\WORKCAT\*Category.csv
Traceback (most recent call last):
File "c:/Users/marunachalam/Downloads/FTPGetFiles.py", line 84, in <module>
big_frame = pd.concat(np_array_list, ignore_index=True)
File "C:\Users\marunachalam\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pandas\core\reshape\concat.py", line 255, in concat
sort=sort,
File "C:\Users\marunachalam\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pandas\core\reshape\concat.py", line 304, in __init__
raise ValueError("No objects to concatenate")
ValueError: No objects to concatenate
PS C:\Users\marunachalam>
不确定如何实现此目标,每种类型的记录数最多可以达到1或2百万。
谢谢