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)
你的第二种解决方案更可取。
我有一个可行的解决方案,但我试图准确理解为什么我的第一个解决方案不起作用,以便更好地了解该主题。我正在尝试从政府网站加载多个 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)
你的第二种解决方案更可取。