#python #excel #pandas
#python #excel #pandas
Вопрос:
У меня есть большое количество файлов Excel с разными столбцами
Например:
Файл 1:
Name | sale | Tips
-------------
sam | 9 | 7
cham | 2 | 2
Файл 2:
Name | sale | Items
-------------------
mini | 6 | Tshirt
Lary | 3 | Hat
Вывод:
Name | sale | Items
--------------------
sam | 9 | Nan
cham | 2 | Nan
mini | 6 | Tshirt
Lary | 3 | Hat
У меня есть 500 файлов для создания в одном наборе данных
Этот код работает до некоторой степени, но если все столбцы не совпадают.
import pandas as pd
import glob,os
import numpy as np
inputFile = 'C:/Users/Desktop/test'
all_workbooks =glob.glob(os.path.join(inputFile,'*.xlsx'))
column_list = []
for files in all_workbooks:
data= pd.read_excel(files,header =0,sheet_name='sheet1')
column_list.append(data)
stack_np = np.vstack(column_list)
newData = pd.DataFrame(stack_np,columns=['Name','Sale'])
print(newData)
Этот код работает, если у меня одинаковые столбцы во всех файлах.
Кто-нибудь может помочь мне с решением, если у меня неупорядоченные столбцы?
Ответ №1:
Вам нужно собрать фреймы данных и объединить их после завершения цикла
all_dfs =[]
wanted_columns = ['Name', 'sale', 'Items']
for files in all_workbooks:
data = pd.read_excel(files,header =0,sheet_name='sheet1')
data = data[wanted_columns] # or skip this line to use all columns
all_dfs.append(data)
master_df = pd.concat(all_dfs)
del all_dfs, data