我正在处理像以下
这样的熊猫系列x = pd.Series([1,2,1,4,2,6,7,8,1,1],index = [' a',' b&#39 ,' a'' c',''' 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',& #39; d',' e',' f',' g',' g'])
答案 0 :(得分:1)
只要您的索引直接映射到值,您就可以简单地调用drop_duplicates
:
In [83]:
x.drop_duplicates()
Out[83]:
a 1
b 2
c 4
d 6
e 7
f 8
dtype: int64
示例:
In [86]:
x = pd.Series(['XX', 'hello', 'XX', '4', 'hello', '6', '7', '8'], index=['a', 'b', 'a', 'c', 'b', 'd', 'e', 'f'])
x
Out[86]:
a XX
b hello
a XX
c 4
b hello
d 6
e 7
f 8
dtype: object
In [87]:
x.drop_duplicates()
Out[87]:
a XX
b hello
c 4
d 6
e 7
f 8
dtype: object
编辑一个回旋方法是重置索引,使索引值为新列,删除重复项,然后再次设置索引:
In [100]:
x.reset_index().drop_duplicates().set_index('index')
Out[100]:
0
index
a 1
b 2
c 4
d 6
e 7
f 8
g 1
答案 1 :(得分:1)
pandas.Series.values
是numpy ndarray
。也许做一个values.astype(int)
会解决你的问题吗?