这应该很容易,但我却有一个令人惊讶的恼人的时间。下面的代码演示了如何执行Pandas groupby操作,以便可以按符号计算方差。不幸的是,aggregation命令似乎去掉了整数索引,所以我尝试创建一个新的整数列表,并将其作为列添加到表中,并设置为新索引。在
vardataframe = voldataframe.groupby('Symbol')
vardataframe = vardataframe.aggregate(np.var)
vardataframe['newindex']= np.arange(1,(len(vardataframe)+1))
vardataframe.set_index(['newindex'])
vardataframe = vardataframe.ix[:,['newindex','Symbol','volatility']]
然而,结果如下vardataframe.head()结果,它没有正确地将表的索引从符号改回数值。当我尝试执行merge命令时,这会在一两行中伤害我。在
^{pr2}$如您所见,上面的问题是现在有两个符号列,并且索引没有正确设置。我想做的是去掉第二个Symbol列,并使newindex成为新索引。有人知道我做错了什么吗?(也许是对ix命令的误解)。非常感谢!在
不用手动创建新索引,只需使用。。。在
您可以使用
as_index=False
来保留整数索引。您只需要一行代码就可以完成您需要的操作:代码中有几点:
^{pr2}$将
ndewindex
设置为索引,但返回一个未使用的新数据帧。如果需要,可以执行vardataframe.set_index(['newindex'], inplace=True)
。在给出所有}的列,而只存在于其
NaN
的列Symbol
,因为Symbol
不是{index
中。使用ix
查询不存在的列将得到所有NaN
。正如@user2600939所提到的,您可以做vardataframe.reset_index(inplace=True)
(或vardataframe=vardataframe.reset_index()
)将Symbol
放回一列。在相关问题 更多 >
编程相关推荐