【问题标题】:append item to list in pandas by index [duplicate]按索引将项目附加到熊猫列表中[重复]
【发布时间】:2015-01-07 22:17:46
【问题描述】:

我有一个由空列表组成的熊猫系列。

>>> 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']

我最终会希望每个索引上有多个“标签”,这是目前的回退。我仍然想知道为什么附加不起作用。

【问题讨论】:

  • 不确定您要在这里实现什么,但您可以将您的行改为:s.iloc[ i ]=['prime']
  • 请注意:将列表(或更一般地说,非标量)作为 Series 和 DataFrames 中的元素通常会让人头疼,尽管它有时可用作中间步骤。

标签: python list pandas


【解决方案1】:

试试这个:

s = pd.Series([[] for _ in range(20)], index= range(0,20) )

您的问题是,您多次引用同一个列表,而不是有几个不同的空列表。一个例子让你看到问题:

>>> lists = [[]] * 5
>>> lists
[[], [], [], [], []]
>>> lists[0].append(1)
>>> lists
[[1], [1], [1], [1], [1]]

【讨论】:

    猜你喜欢
    • 2018-02-28
    • 2015-06-16
    • 1970-01-01
    • 2014-07-11
    • 1970-01-01
    • 2021-03-21
    • 2022-11-12
    • 2023-01-17
    • 2020-11-23
    相关资源
    最近更新 更多