我正在处理的熊猫系列如下
x=pd.Series([1, 2, 1, 4, 2, 6, 7, 8, 1, 1], index=['a', 'b', 'a', 'c', 'b', 'd', 'e', 'f', 'g', 'g'])
索引不是唯一的,但总是映射到同一个值,例如在我的示例中“a”始终对应于“1”,b始终映射到“2”等等。因此,如果我想查看哪些值对应于我只需编写的每个索引值
x.mean(level=0)
a 1
b 2
c 4
d 6
e 7
f 8
g 1
dtype: int64
当值是字符串时,问题就出现了,我不能对字符串调用“mean()”,但在这种情况下,我仍然希望返回一个类似的列表。有什么好办法吗?在
x=pd.Series(['1', '2', '1', '4', '2', '6', '7', '8', '1', '1'], index=['a', 'b', 'a', 'c', 'b', 'd', 'e', 'f', 'g', 'g'])
您还可以通过获取唯一索引值的列表并使用
iloc
将其插入索引,从而确保在不改变数组形状的情况下获得所有唯一索引。Numpy的unique
方法包括一个return_index
arg,它提供了一个(unique_values, indices)
的元组:pandas.Series.values
是numpyndarray
s。也许做一个values.astype(int)
可以解决你的问题?在只要您的索引直接映射到这些值,您就可以简单地调用
drop_duplicates
:示例:
^{pr2}$编辑迂回方法是重置索引,使索引值成为新列,删除重复项,然后重新设置索引:
相关问题 更多 >
编程相关推荐