向没有给定键的系列添加键-值对(Pandas)

amrnrhlw  于 2022-11-27  发布在  其他
关注(0)|答案(2)|浏览(151)

我想更新缺少键的系列,但代码生成错误。
这是我的代码:

for item in list:
    if item not in my_series.keys():
        my_series = my_series[item] = 0

其中my_series是一个数据类型int64的序列。它实际上是一个值计数。
我上面的代码生成以下错误

'int' object does not support item assignment
yeotifhr

yeotifhr1#

你所说的“序列”是什么意思?如果我没弄错的话,python中没有这样的数据类型。你似乎把它当作了一个dict来使用。你是否需要为一个关键字“item”设置默认值为0?如果是的话:

for item in <definitely_list_is_a_bad_name>:
    my_series[item] = my_series.get(item) if my_series.get(item, None) is not None else 0
ilmyapht

ilmyapht2#

从我在文档中读到的内容来看,Pandas系列的功能很像一个法令,所以我的评论仍然有效:

import pandas as pd
d = {'a': 1, 'b': 2, 'c': 3}
my_series = pd.Series(data=d, index=['a', 'b', 'c'])
my_list = ['a','h','c','d']

for item in my_list:
    if item not in my_series:
        my_series[item] = 0
        
print(my_series)

# a    1
# b    2
# c    3
# h    0
# d    0
# dtype: int64

顺便说一句,正如John Doe提到的,“list”是一个糟糕的名字选择;不要使用Python关键字作为对象名称,否则会覆盖这些关键字,并冒着以后出现问题的风险。

相关问题