我正在尝试按月份分组pd.DataFrame
,并应用一个自定义函数ultimo(x)
:
def ultimo(x):
if x.first_valid_index() is None:
return np.nan
else:
return x[x.first_valid_index()]
我从另一个question of mine那里得到这个。但是,今天我在应用它时遇到了一个KeyError
它声称返回的索引不在索引内?在
我已经打印了x和x。第一个\u valid_index()也返回:
^{pr2}$在运行navs = navs.groupby(navs.index.to_period('M')).apply(ultimo)
之前,我已经使用pd.to_datetime
将我的日期索引转换为datetime:
navs['Date'] = pd.to_datetime(navs['Date'])
navs = navs.set_index('Date')
我该怎么解决这个问题?具有讽刺意味的是,pd.first_valid_index()
返回一个引发KeyError
的索引。我想我得先对索引做些其他的转换?在
这是因为在上一个问题中,输入(因此
x
)是一个序列,因此x[index]
工作正常。对于数据帧,x[index]
需要一个列名。为了访问由索引索引索引的行,您需要x.loc[index]
。见documentation here。在此功能将工作:
相关问题 更多 >
编程相关推荐