我有一个熊猫系列,由空名单组成。
>>> s = pd.Series( [[]] * 20, index= range(0,20) )
我想按索引向某些元素添加标记。
>>> for i in [1,3,5,7,11]:
... s.loc[ i ].append('prime')但这是我一直得到的:
>>> s
0 [prime, prime, prime, prime, prime]
1 [prime, prime, prime, prime, prime]
2 [prime, prime, prime, prime, prime]
3 [prime, prime, prime, prime, prime]
4 [prime, prime, prime, prime, prime]
5 [prime, prime, prime, prime, prime]
6 [prime, prime, prime, prime, prime]
7 [prime, prime, prime, prime, prime]
8 [prime, prime, prime, prime, prime]
9 [prime, prime, prime, prime, prime]
10 [prime, prime, prime, prime, prime]
11 [prime, prime, prime, prime, prime]
12 [prime, prime, prime, prime, prime]
13 [prime, prime, prime, prime, prime]
14 [prime, prime, prime, prime, prime]
15 [prime, prime, prime, prime, prime]
16 [prime, prime, prime, prime, prime]
17 [prime, prime, prime, prime, prime]
18 [prime, prime, prime, prime, prime]
19 [prime, prime, prime, prime, prime]
dtype: object这不是我想要的。
我希望是这样的:
>>> s
0 []
1 [prime]
2 []
3 [prime]
4 []
5 [prime]
6 []
7 [prime]
8 []
9 []
10 []
11 [prime]
12 []
...我已经把头撞在桌子上一个小时了。熊猫新闻。
更新
下面的工作与预期的一样。
s = pd.Series( [[]] * 20, index= range(0,20) )
>>> for i in [1,3,5,7,11]:
... s.loc[ i ] = s.loc[ i ] + ['prime']我最终希望在每个索引上有多个“标签”,这是暂时的退步。我还是想知道为什么附件不起作用。
发布于 2015-01-07 22:22:54
试试这个:
s = pd.Series([[] for _ in range(20)], index= range(0,20) )您的问题是,与其有几个不同的空列表,不如多次引用同一个列表。举个例子,您可以看到这个问题:
>>> lists = [[]] * 5
>>> lists
[[], [], [], [], []]
>>> lists[0].append(1)
>>> lists
[[1], [1], [1], [1], [1]]https://stackoverflow.com/questions/27829635
复制相似问题