使用索引的 KeyError

KeyError using Index

对于这个相当基本的问题深表歉意。

基本上我有一个大型数据框,我在其中提取某些值总和的最高日期。看起来像这样:

hv_toploss = hv.groupby(['END_VALID_DT']).sum()
hv_toploss=hv_toploss.sort_values('TOTALPL',ascending=False).iloc[:10]
hv_toploss['END_VALID_DT'] = pd.to_datetime(hv_toploss['END_VALID_DT'])

现在,END_VALID_DT 成为 hv_toploss 的索引,当 运行 第 3 行时我得到一个 KeyError。如果我尝试重新索引,我得到一个多索引错误,由于这些是我需要的值,我不能只删除索引。

我将在一行中调用这些值,例如:

PnlByDay = PnlByDay.loc[hv_toploss['END_VALID_DT']]

这里的任何帮助都会很棒。 Python.

我还是新手

好的,我通过将索引值复制到一个新列并使用它来解决这个问题。

hv_toploss = hv.groupby(['END_VALID_DT']).sum()
hv_toploss['Scenario_Dates'] = hv_toploss.index
hv_toploss=hv_toploss.sort_values('TOTALPL',ascending=False).iloc[:10]

但是,关于如何正确的任何意见请告知。

您可以直接使用索引而不是创建另一个包含索引的列。

the_dates = hv_toploss.sort_values('TOTALPL',ascending=False).iloc[:10].index
PnlByDay.loc[PnlByDay.index.isin(the_dates)]

我不知道PnlByDay的结构,所以你可能需要修改那部分。