У меня есть 10 файлов всех типов файлов astropy.table.table.Table, все они состоят из одних и тех же шести столбцов (mjd, filter, flux, flux_error, zp, zpsys), но имеют разную длину. во-первых, я хочу преобразовать каждый файл в тип файла pandas.core.frame.DataFrame, чтобы я мог добавить их все в один список и использовать функцию pd.concat, чтобы превратить все 10 файлов в 1 большой файл pandas.core.frame.DataFrame. файл. Я пробовал это:
import numpy as np
import pandas as pd
from astropy.table import Table
n=10
li=[]
for i in range(0,n):
file = "training_data/%s.dat"%i # This way I can call each file automatically
data = Table.read(file, format="ascii")
data = pd.read_table(file) # I convert the file to pandas compatible
li.append(data) # I add the file into the empty list above
# now I have my list ready so I compress it into 1 file
all_data = pd.concat(li)
проблема с этим методом заключается в том, что все столбцы (6 столбцов) по какой-то причине сжимаются в 1 столбец, поэтому я не могу выполнить остальную часть работы.
когда я проверяю форму всех_данных, которые я получаю (879, 1). и это выглядит так:
all_data.head()
mjd filter flux flux_error zp zpsys
0 0.0 desg -4.386 4.679 27.5 ab
1 0.011000000005878974 desr -0.5441 2.751 27.5 ab
2 0.027000000001862645 desi 0.4547 4.627 27.5 ab
3 0.043000000005122274 desz -1.047 4.462 27.5 ab
4 13.043000000005122 desg -4.239 4.366 27.5 ab
так, как я могу создать такой файл, но сохранить мои столбцы как отдельные столбцы?
вот пример некоторых моих данных в файле 0:
mjd filter flux flux_error zp zpsys
float64 str4 float64 float64 float64 str2
0.0 desg -4.386 4.679 27.5 ab
0.0110000 desr -0.5441 2.751 27.5 ab
0.0270000 desi 0.4547 4.627 27.5 ab
0.0430000 desz -1.047 4.462 27.5 ab
13.043000 desg -4.239 4.366 27.5 ab
13.050000 desr 4.695 3.46 27.5 ab
13.058000 desi 6.291 6.248 27.5 ab
13.074000 desz 6.412 5.953 27.5 ab
21.050000 desg 1.588 2.681 27.5 ab
21.058000 desr -0.6124 2.171 27.5 ab