尝试命名多个索引获取密钥错误

时间:2018-03-01 13:42:46

标签: python-3.x pandas dataframe

早上好,

我正在使用python 3.6。我正在尝试命名我的索引(请参阅下面的代码中的最后一行),因为我打算加入另一个DataFrame。 DataFrame应该是多索引的。索引是前两列('currency'和'rtdate')和数据

                      rate
   AUD  2010-01-01    0.897274
        2010-02-01    0.896608
        2010-03-01    0.895943
        2010-04-01    0.895277
        2010-05-01    0.894612

这是我正在运行的代码:

import pandas as pd
import numpy as np
import datetime as dt

df=pd.read_csv('file.csv',index_col=0)
df.index = pd.to_datetime(df.index)
new_index = pd.date_range(df.index.min(),df.index.max(),freq='MS')
df=df.reindex(new_index)
df=df.interpolate().unstack()
rate = pd.DataFrame(df)
rate.columns = ['rate']
rate.set_index(['currency','rtdate'],drop=False)

运行此throw是一条错误消息:

KeyError: 'currency'

我错过了什么。

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

我认为您需要首先使用rename_axis然后reset_indexMultiIndex中的列设置rate = df.interpolate().unstack().set_axis(('currency','rtdate')).reset_index() 级别的名称:

所以你最终得到了这个:

df=df.interpolate().unstack()
rate = pd.DataFrame(df)
rate.columns = ['rate']
rate.set_index(['currency','rtdate'],drop=False)

而不是:

{{1}}