从数据框创建csv文件后替换日期时间索引

时间:2019-05-05 12:44:14

标签: python-3.x pandas dataframe

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设置为index。 。

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

将数据帧写入csv时如何保留日期时间索引?

2 个答案:

答案 0 :(得分:0)

尝试在加载时告诉pandas哪一列是索引:

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

如果您需要更多帮助,这是一个很好的指南,它比我能更好地解释它:https://chrisalbon.com/python/data_wrangling/pandas_dataframe_importing_csv/

答案 1 :(得分:0)

尝试摆脱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