将单个项目附加到熊猫系列中的列表

Posted

技术标签:

【中文标题】将单个项目附加到熊猫系列中的列表【英文标题】:Appending individual items to lists in pandas Series 【发布时间】:2015-06-16 02:34:46 【问题描述】:

我正在创建一个多索引熊猫系列,每个项目都是一个列表。首先,一个空列表,然后我分别附加这些列表中的每一个。但是,当我尝试以天真的方式做到这一点时,我遇到了一个问题。在这个简单的例子中很容易复制:

blah = pd.Series([[]]*8)
blah[0].append(30)
blah

我想得到的是这样的:

0    [30]
1    []
2    []
3    []
4    []
5    []
6    []
7    []

相反,输出是这样的:

0    [30]
1    [30]
2    [30]
3    [30]
4    [30]
5    [30]
6    [30]
7    [30]

它不是附加列表之一,而是将所有列表附加相同的值。

我的问题:这是一个错误还是我做错了什么?有没有更好的方法来做到这一点?

(请记住,我实际上是在使用 Multiindex 系列,尽管我认为这对于这个特定问题并不重要)

【问题讨论】:

【参考方案1】:

你应该使用类似[ [] for x in range(0,8) ]的东西

这将创建一个新列表 ([]) 8 次,而不是引用同一个列表的 8 次。

【讨论】:

参考...你弄错了,或者你弄错了。谢谢,成功了!【参考方案2】:

您还可以找到有用的字典。

lists = 
for i in range(8):
    lists[i] = []

lists[0] = [30]

返回

0: [30], 1: [], 2: [], 3: [], 4: [], 5: [], 6: [], 7: []

【讨论】:

【参考方案3】:

如果你追加 None 会怎样。

foo = [None]*30
foo[0] = 30

【讨论】:

这不能回答问题:它给出了不同的结果。 @Bruce 错误的答案仍然是答案。投反对票并继续 IMO。 我相信使用 None 会更清楚。你明确地说那里什么都没有。

以上是关于将单个项目附加到熊猫系列中的列表的主要内容,如果未能解决你的问题,请参考以下文章

附加到熊猫数据框中的列表

如何按 > 日期对一系列日期求和并将它们附加到熊猫新数据框中的新列?

将列表作为大熊猫中的行附加数据框

将多列中的列表合并到熊猫中的单列

熊猫,附加到excel中的下一个可用行[重复]

将列表中的字典追加到熊猫数据框