Я пытаюсь объединить (concat) фреймы данных, выбранные из CSV-файлов. Ранее я достигал этого вручную, но хочу использовать (tkinter) filedialog, чтобы пользователь мог выбрать один или несколько файлов для использования в кадре данных. То, что у меня есть:
- Считывать имена файлов в массив, пока пользователь не нажмет отмену - все хорошо
while True:
root = Tk()
root.withdraw()
filename = filedialog.askopenfilename(title='Open data file', filetypes=(("Comma separated values", "*.csv"),))
if filename =="":
break
filenames.append(filename)
Используйте имена файлов для генерации кадра данных - все хорошо в отдельности (я думаю, что они печатают ОК)
def read_Yokogawa(filename):
frame = pd.read_csv(filename, header = 46, skiprows = [47, 48], low_memory = False, parse_dates = True, infer_datetime_format = True, na_values = ['+OVER', '-OVER'])
print(frame)
return frame
dfs=[] #Set an empty array of dataframes
for filename in filenames:
dfs.append([read_Yokogawa(filename)]) #Append each dataframe to the array
Конкатировать массив данных вместе -
не хорошо df = pd.concat(dfs)
Я получаю ошибку: TypeError: невозможно объединить объект типа ''; допустимы только Series и DataFrame ob js
Все файлы имеют одинаковые столбцы, поскольку они генерируются одним и тем же программным обеспечением. Я также пытался pd.concat([dfs])
, но получаю ту же ошибку.