Как выгрузить данные из df в CSV файл с сохранением имени индексов и столбцов?
Задание имен индексов и столбцов производится следующим образом:
df.index.names = ['First','Second'] #мультииндекс
df.columns.names = ['Param']
При последующей выгрузке в .csv этого DataFrame
df.to_csv(r'C:\folder')
В .csv файл не попадают имена индексов, указанные выше
Вывод df выглядит следующим образом:
Out[1]:
Param 2020-01-01 2020-01-08 ... 2020-03-11 2020-03-18
First Second ...
SR0013863 GFC007286 0.33 0.4 ... 0.43 0.04
SR0016151 GFC006849 0.49 0.66 ... 0.57 0
GFC007286 0.1 0.12 ... 0.08 0.01
[3 rows x 12 columns]
Подскажите, пожалуйста, как сделать так, чтобы в .csv файл попали имена строк и столбцов?
Ответы (1 шт):
Автор решения: MaxU
→ Ссылка
По умолчанию, метод DataFrame.to_csv(filename) сохраняет имена столбцов мультииндекса.
Пример:
In [11]: df = (pd
.DataFrame(np.random.randint(10, size=(5,3)),
columns=["idx1", "idx2", "val"])
.set_index(["idx1","idx2"]))
In [12]: df
Out[12]:
val
idx1 idx2
8 0 6
3 0 4
6 4 8
2 4
7 1 5
In [13]: df.to_csv(r"c:\temp\test.csv")
Результат:
idx1,idx2,val
8,0,6
3,0,4
6,4,8
6,2,4
7,1,5
чтобы прочитать такой CSV файл и получить мультииндекс:
df = pd.read_csv(filename, index_col=[0,1])
или указав имена столбцов мультииндекса:
df = pd.read_csv(filename, index_col=["idx1","idx2"])
Если в старых версиях Pandas, df.to_csv() не сохраняет имена столбцов мультииндекса, то проще всего превратить их в обычные столбцы перед выгрузкой DF в CSV:
df.reset_index().to_csv(filename, index=False)