Python 在 "For Loop" 中追加与连接多个文件

Python append versus concat with multiple files in a "For Loop"

我有一个可行的解决方案,但我试图准确理解为什么我的第一个解决方案不起作用,以便更好地了解该主题。我正在尝试从政府网站加载多个 excel 文件并加载到一个数据框中进行分析。循环列表很重要,因为网站经常更新。

我的第一次尝试产生了一个空数据框。

import glob
import pandas as pd
df_list = pd.DataFrame()
for name in glob.glob('C:\Market research\Total Files\*.xls*'): 
    df = pd.read_excel(name)
    df.columns = df.columns.str.lower()
    df_list.append(df)
print(df_list)

这导致了以下输出:

Empty DataFrame Columns: [] Index: []

我的第二次尝试是以下代码:

import glob
import pandas as pd

df_list = []
for name in glob.glob('C:\Market research\Total Files\*.xls*'): 
    df = pd.read_excel(name)
    df_list.append(df)
    df.columns = df.columns.str.lower()
jobs_df = pd.concat(df_list)

print(jobs_df.shape)
print(jobs_df.head())

产生了以下结果,这是我所期望的。

  occ_code                        occ_title  group         tot_emp 
0  00-0000                  All Occupations    NaN       130307840   
1  11-0000           Management occupations  major         5960560   
2  11-1011                 Chief executives    NaN          321300   
3  11-1021  General and operations managers    NaN         1663810   
4  11-1031                      Legislators    NaN           61060   

为什么这些没有产生相同的结果?

不管打印错误的变量:在你的第一个数据框解决方案中df_list

df_list.append(df)

创建一个新的数据框。您需要将其分配给一个变量

df_list = df_list.append(df)

你的第二种解决方案更可取。