Индекс даты и времени заменен после создания файла csv из фрейма данных - PullRequest
1 голос
/ 05 мая 2019
data = pd.read_csv('data.csv')
print(data)

Выход:

       code  trade_date   open   high    low  close       volume
0       2GO  2012-06-04  1.750  1.750  1.750  1.750       5000.0
1       2GO  2012-06-05  1.750  1.980  1.750  1.900       8000.0
2       2GO  2012-06-07  1.960  1.960  1.800  1.800       8000.0
3       2GO  2012-06-11  1.900  1.980  1.900  1.980      50000.0
4       2GO  2012-06-13  1.990  1.990  1.900  1.900      19000.0

Я хочу установить trade_date в качестве индекса. , .

data.set_index('trade_date', inplace=True)
print(data)

Выход:

           code   open   high    low  close       volume
trade_date
2012-06-04  2GO  1.750  1.750  1.750  1.750       5000.0
2012-06-05  2GO  1.750  1.980  1.750  1.900       8000.0
2012-06-07  2GO  1.960  1.960  1.800  1.800       8000.0
2012-06-11  2GO  1.900  1.980  1.900  1.980      50000.0
2012-06-13  2GO  1.990  1.990  1.900  1.900      19000.0

. , , затем запишите его в CSV-файл.

data.to_csv('data_reidx.csv')

Однако, когда я снова читаю файл csv, trade_date снова становится столбцом и заменяется традиционной индексацией.

data = pd.read_csv('data_reidx.csv')

Выход:

        trade_date code   open   high    low  close       volume
0       2012-06-04  2GO  1.750  1.750  1.750  1.750       5000.0
1       2012-06-05  2GO  1.750  1.980  1.750  1.900       8000.0
2       2012-06-07  2GO  1.960  1.960  1.800  1.800       8000.0
3       2012-06-11  2GO  1.900  1.980  1.900  1.980      50000.0
4       2012-06-13  2GO  1.990  1.990  1.900  1.900      19000.0

Как сохранить индекс datetime при записи фрейма данных в csv?

Ответы [ 2 ]

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

Попробуйте избавиться от index_label -

data.to_csv('data_reidx.csv', index_label=False )

В следующий раз, когда вы прочитаете, прочитайте его нормально -

data = pd.read_csv('data_reidx.csv')

Вывод

           code  open  high   low  close   volume
2012-06-04  2GO  1.75  1.75  1.75   1.75   5000.0
2012-06-05  2GO  1.75  1.98  1.75   1.90   8000.0
2012-06-07  2GO  1.96  1.96  1.80   1.80   8000.0
2012-06-11  2GO  1.90  1.98  1.90   1.98  50000.0
2012-06-13  2GO  1.99  1.99  1.90   1.90  19000.0
0 голосов
/ 05 мая 2019

Попробуйте указать пандам, какой столбец является индексом при загрузке:

data = pd.read_csv('data_reidx.csv', index_col='trade_date')

Вот хорошее руководство, которое объясняет это лучше, чем я, если вам нужна дополнительная помощь: https://chrisalbon.com/python/data_wrangling/pandas_dataframe_importing_csv/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...