为什么我不能将 tempDF 附加到 df?

Why I cant append tempDF to df?

我有那个代码:

def show_files(upload_files):

    tempDF = pd.DataFrame()
    tempDF2 = pd.DataFrame()

    for file in upload_files:
        file = file.name
        if file.startswith('L'):
            Table = Dbf5(file)
            DF1 = Table.to_dataframe()
            tempDF = tempDF.append(DF1, sort=False)

        elif file.startswith('M'):
            Table = Dbf5(file)
            DF2 = Table.to_dataframe()
            tempDF2 = tempDF2.append(DF2, sort=False)
            print(f"final 2 - {tempDF2}")

  return [tempDF, tempDF2]

Upload_files 这是一个包含文件名的列表。示例:

["M22.dbf", "M31.dfb", "L22.dfb"]

所有 dbf 已成功加载为 DF。我调试了它。所以 DF1 = Table.to_dataframe() 工作正常。但是函数 return DF 仅来自上次加载的文件...

例如:

1. Load M22 (500rows)
2. Put in TEMP_DF2 (temp_df2 = 500rows)
3. Load M31 (266rows)
4. Put in TEMP_DF2 with append(temp_DF2 = 266 rows, excepted 766)

我不知道为什么?我没有注意到错误。

不确定您的 DataFrame 看起来如何,但是,问题似乎不是追加(参见下面的示例)。可能是通过的列表有问题吗?重现错误的完整示例可能会有所帮助。

import pandas as pd

uploads = ['M1', 'M2', 'L1', 'L2', 'M3']

df_m = pd.DataFrame()
df_l = pd.DataFrame()

for upload in uploads:
    if upload.lower().startswith('l'):
        df_l = df_l.append(pd.DataFrame({'a' : [i for i in range(10)]}))
    else:
        df_m = df_m.append(pd.DataFrame({'a' : [i for i in range(10)]}))

print('M: ', df_m.shape) #(30,1)
print('L: ', df_l.shape) #(20,1)