使用索引的 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
的结构,所以你可能需要修改那部分。
对于这个相当基本的问题深表歉意。
基本上我有一个大型数据框,我在其中提取某些值总和的最高日期。看起来像这样:
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
的结构,所以你可能需要修改那部分。