Как сохранить многоиндексированные данные pandas на паркет? - PullRequest
0 голосов
/ 25 февраля 2019

Как сохранить кадр данных, показанный в конце, в паркет?
Он был построен следующим образом:

df_test = pd.DataFrame(np.random.rand(6,4))
df_test.columns = pd.MultiIndex.from_arrays([('A', 'A', 'B', 'B'), 
      ('c1', 'c2', 'c3', 'c4')], names=['lev_0', 'lev_1'])
df_test.to_parquet("c:/users/some_folder/test.parquet")

Последняя строка этого кода возвращает:

ValueError: паркет должен иметь строковые имена столбцов

Должен ли я предположить, что не могу сохранить фрейм данных с заголовками столбцов, созданными из нескольких индексов (из строк)?Спасибо.

- Фрейм данных выглядит следующим образом:

lev_0         A                   B          
lev_1        c1        c2        c3        c4
0      0.713922  0.551404  0.289861  0.178739
1      0.693925  0.425073  0.660924  0.695474
2      0.280258  0.827231  0.282844  0.523069
3      0.424731  0.380963  0.462356  0.491140
4      0.786677  0.102935  0.382453  0.199056
5      0.783115  0.295409  0.236880  0.388399

1 Ответ

0 голосов
/ 06 мая 2019

pyarrow может записывать многоиндексные панды в файлы паркета.

import pandas as pd
import numpy as np
import pyarrow.parquet as pq

df_test = pd.DataFrame(np.random.rand(6,4))
df_test.columns = pd.MultiIndex.from_arrays([('A', 'A', 'B', 'B'), 
      ('c1', 'c2', 'c3', 'c4')], names=['lev_0', 'lev_1'])
table = pa.Table.from_pandas(df_test)
pq.write_table(table, 'test.parquet')

df_test_read = pd.read_parquet('test.parquet')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...