我试图将每个文件的数据框附加到单个主数据帧中。但是,最终的数据框是空白的。我在尝试附加之前打印了每个,并且独立的数据帧有数据。
代码:
import pandas as pd
import os
source_directory = r'H:\folder'
masterDF = pd.DataFrame()
for file in os.listdir(source_directory):
if file.endswith(".xlsx") or file.endswith(".xls"):
dataframe = pd.read_excel(source_directory + '\\' + file)
print(dataframe)
masterDF.append(dataframe)
print(masterDF)
结果:
Col_A Col_B
0 46 5
1 56 4
2 45 4
3 45 4
4 455 5
5 4 4
6 4 5
7 544 4
Col_A Col_B
0 64 9
1 4 45
2 4 42
3 45 4
4 46 7
5 56 75
Empty DataFrame
Columns: []
Index: []
答案 0 :(得分:1)
追加不起作用,它会返回附加的DataFrame,因此您必须将其分配给masterDF:
masterDF = masterDF.append(dataframe)
然而,追加数据框意味着每次都必须构建一个新的数据帧。更快的替代方法是构建从Excel文件中读取的数据帧列表,然后使用返回一个数据帧的pd.concat(my_list)。
编辑代码我会这样做:
import pandas as pd
import os
source_directory = r'H:\folder'
master_list = []
for file in os.listdir(source_directory):
if file.endswith(".xlsx") or file.endswith(".xls"):
dataframe = pd.read_excel(source_directory + '\\' + file)
print(dataframe)
master_list.append(dataframe)
masterDF = pd.concat(master_list, ignore_index=True)
print(masterDF)