【发布时间】:2021-02-03 16:03:15
【问题描述】:
我有一个可行的解决方案,但我正试图准确了解为什么我的第一个解决方案无法更好地教育自己了解该主题。我正在尝试从 gov 网站加载多个 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
为什么这些没有产生相同的结果?
【问题讨论】:
-
print(df1)不应该在第一种情况下打印df_list吗? -
你为什么在第一种方法中
print(df1)? -
顺便说一句,通常最好将数据帧收集到常规 python 列表中并将它们连接一次(您的第二个解决方案)。
append每次都复制,因此随着更多文件的添加,第一个文件中的数据会被复制多次。 -
抱歉,df1 的打印被搁置了。该问题已被编辑以反映 df_list,但结果是相同的。 '空数据框'
标签: python pandas append concat