【发布时间】:2019-05-05 12:44:14
【问题描述】:
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 时如何保留日期时间索引?
【问题讨论】:
-
你可以试试data = pd.read_csv('data_reidx.csv', index_col='trade_date')。让我知道它是否有效。
-
@itaybenhaim 这行得通。在
data.to_csv('data_reidx.csv', index_label=False)中,即使在正常读取 csv 时也会保留日期索引,但“trade_date”列名已消失。两者都工作得很好。在我的情况下,列名并不重要。 -
欢迎投票 :)
-
@itaybenhaim 会在我达到 15 个代表时完成 :)
标签: python-3.x pandas dataframe