循环以将多个熊猫数据帧存储到列表中

时间:2019-03-21 05:20:44

标签: python

我是Python初学者,我想知道是否可以将循环生成的多个dataframes存储到列表中。

不幸的是,我没有可重复的例子。我想做的是读取pdf文件目录,将第0行放入标题中,放下该行并将其存储在列表中的dataframe中。

master_df= []
for i in range(1, len(pdffiles)):
    df = read_pdf(pdffiles[i])
    df.columns = df.iloc[0,] #get col names
    df = df.reindex(df.index.drop(0)) #drop first row
    df = df.replace(np.nan, '', regex=True, inplace = True)
    master_df = df

这是我的代码,但是我在df.columns, reindexreplace遇到此错误。

  

AttributeError:'NoneType'对象没有属性'replace'

有人能指出我正确的方向吗?

更新:

请问为什么下面的代码不起作用?当数据框未设置为“无”时,我尝试解析为continue

master_df = []
for i in range(len(pdffiles)):
    df = read_pdf(pdffiles[i])
    if df is not None:
        continue
    df.columns = df.iloc[0,:] # get col names
    df = df.reindex(df.index.drop(0)) # drop first row
    df = df.fillna('')
    master_df.append(df)

1 个答案:

答案 0 :(得分:1)

可以在列表中存储数据帧:

master_df = []
for i in range(len(pdffiles)):
    df = read_pdf(pdffiles[i])
    df.columns = df.iloc[0,:] # get col names
    df = df.reindex(df.index.drop(0)) # drop first row
    df = df.fillna('')
    master_df.append(df)

您可以使用df.fillna()NaN的值替换为''