【问题标题】:set index to Date column residing in level 3 multiindex dataframe将索引设置为位于 3 级多索引数据框中的日期列
【发布时间】:2020-04-25 08:32:56
【问题描述】:

对于如下所示的数据框:

我想简单地将索引设置为您看到的第一列的日期列。 数据框来自我将数据保存到 csv 的 api:

data.to_csv('stocks.csv', header=True ,sep=',',mode='a')
data = pd.read_csv('stocks.csv',header=[0,1,2])
data

最好我也想摆脱您在图片中看到的“未命名:..”标签。 谢谢。

【问题讨论】:

  • 到目前为止你有什么尝试?
  • 这能回答你的问题吗? how set column as date index?
  • 我尝试将级别 0 与级别 2 交换,因此将日期置于顶部。然后像这样应用简单的 set_index(): data.columns=data.columns.swaplevel(2,0) data = data.set_index('Date') 然后我想我可以用 0 换回 2 并保留索引,但是我刚刚被带回到起点。

标签: python pandas


【解决方案1】:

我通过在 read_csv 函数中指定 header=[0,1] ,index_col=0 并在将数据帧转换为数字后解决了这个问题,因为数据类型被扭曲但我相信并非总是如此:

data = pd.read_csv('stocks.csv', header=[0,1] ,index_col=0)
data = data.apply(pd.to_numeric, errors='coerce')
# eventually:
data = data.dropna()

以这种方式,我得到了我想要的,即写例如

data['AGN.AS']['High']

并获得特定股票的高价值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-14
    • 1970-01-01
    • 2016-10-03
    • 2020-06-26
    • 1970-01-01
    • 2014-12-06
    • 2018-10-24
    相关资源
    最近更新 更多