Python 3.x 使用dfs列表从多个CSV编译数据帧

Python 3.x 使用dfs列表从多个CSV编译数据帧,python-3.x,pandas,Python 3.x,Pandas,我正在尝试从50个csv文件创建一个数据帧。我只需要使用csv文件的两列,即“日期”和“关闭”。我尝试在for循环中使用df.join函数,但它会占用大量内存,在处理了几乎22-23个csv文件后,我遇到了错误“Killed:9”。 因此,现在我尝试使用for循环创建一个只有2列的数据帧列表,然后尝试在循环函数外连接dfs 我有以下问题需要解决:- (i) 虽然大多数csv文件的开始日期为2000-01-01,但很少有csv的开始日期较晚。因此,我希望主数据框应该有所有的日期,带有NaN或空字段

我正在尝试从50个csv文件创建一个数据帧。我只需要使用csv文件的两列,即“日期”和“关闭”。我尝试在for循环中使用df.join函数,但它会占用大量内存,在处理了几乎22-23个csv文件后,我遇到了错误“Killed:9”。 因此,现在我尝试使用for循环创建一个只有2列的数据帧列表,然后尝试在循环函数外连接dfs

我有以下问题需要解决:- (i) 虽然大多数csv文件的开始日期为2000-01-01,但很少有csv的开始日期较晚。因此,我希望主数据框应该有所有的日期,带有NaN或空字段,用于csv,具有更晚的开始日期。 (ii)我想在整个日期内将其作为索引

我的代码是:-

def compileData(symbol):
    with open("nifty50.pickle","rb") as f:
        symbols=pickle.load(f)
    dfList=[]
    main_df=pd.DataFrame()
    for symbol in symbols:
        df=pd.read_csv('/Users/uditvashisht/Documents/udi_py/stocks/stock_dfs/{}.csv'.format(symbol),infer_datetime_format=True,usecols=['Date','Close'],index_col=None,header=0)
        df.rename(columns={'Close':symbol}, inplace=True)
        dfList.append(df)
    main_df=pd.concat(dfList,axis=1,ignore_index=True,join='outer')


   print(main_df.head())

您可以在read\u csv或dflist.append(df.set\u index('Date'))中使用
index\u col=0
,将日期列放入每个数据帧的索引中。然后使用axis=1的pd.concat,Pandas将使用内在数据对齐来根据索引对齐所有数据帧。

我认为您可以
dflist.append(df.set_index('Date'))
将每个数据帧与索引中设置的日期一起追加,然后当您使用axis=1的pd.concat时,它将在索引上对齐。我得到了这个错误ValueError:传递值的形状是(504432),索引暗示(504428)“在这样做的时候。你知道你的csv是哪一列,你可以使用index_col=#然后删除set_index。你的csv文件似乎有不同的列。尝试先运行两个文件,然后运行5个文件,然后运行10个文件,找出它在哪里中断。是的。。。你的过程和设定的索引一起工作?试着先处理两个文件,这样行吗?“增量添加文件”对话框将查看文件在何处中断,并找出中断文件的文件的不同之处。