【问题标题】:Datetime index replaced after creating csv file from dataframe从数据框创建 csv 文件后替换日期时间索引
【发布时间】: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


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2019-03-16
      • 1970-01-01
      • 2017-05-01
      • 1970-01-01
      • 2017-08-13
      • 2015-12-08
      • 1970-01-01
      • 2020-10-09
      • 2021-03-19
      相关资源
      最近更新 更多