当前位置: 首页 > 知识库问答 >
问题:

如何在python中查找2个系列的列表和

夏侯腾
2023-03-14

我有2个系列1的联系值是列表,这个列表是第二个系列的联系索引,我称之为s1和s2

s1

CountryCode
AE                        [2732106, 9635221, 497740020]
AO                                           [18840483]
AR    [19136618, 154821146, 5545580, 2516804, 197338...
AT    [54970390, 1186432, 53811920, 1401273, 1569597...
AU    [7360236, 2976616, 32871583, 21057806, 9644163...
                            ...                        
US    [3905732, 31524829, 7436630, 23584966, 1943672...
VC                                           [50572551]
VE                                [63119929, 232097737]
VN    [38482291, 180126717, 42255333, 22783399, 2533...
ZA    [2995297, 27387504, 596746008, 158195886, 4941...
Name: User ID, Length: 98, dtype: object

s2

User ID
203           2
375           2
488           2
901           3
1488          1
             ..
939075670     1
952945375     1
956833984     2
978555178     1
1035878080    1
Name: ID, Length: 3019, dtype: int64

如何在s2列表的基础上找到s1列表的和而不使用for循环?

我想要的输出是这样的

ex: i'll find sum of AE  # first row, s3 is a series result

s3.loc['AE'] = s2.iloc[2732106] + s2.iloc[9635221]+ s2.iloc[497740020]

谢谢

共有2个答案

龙学
2023-03-14

爆发-

燕正德
2023-03-14
s1 = pd.Series([[0,1,2],[3,4,5]], index=['a','b'])
s2 = pd.Series(range(10,16), index=range(6))
s1

out:
a    [0, 1, 2]
b    [3, 4, 5]
dtype: object
s2

out:
0    10
1    11
2    12
3    13
4    14
5    15
dtype: int64
s3 = s1.apply(lambda value_of_s1: sum([s2.loc[index_in_list] for index_in_list in value_of_s1]))

s3
out:
a    33
b    42
dtype: int64
 类似资料:
  • 问题内容: 关于你的第一个问题:该代码非常好,并且如果与其中的一个元素相等就可以正常工作。也许你尝试查找与其中一项不完全匹配的字符串,或者你使用的浮点值会导致不准确。 关于第二个问题:如果“查找”列表中的内容,实际上有几种可能的方法。 检查里面是否有东西 这是你描述的用例:检查列表中是否包含某些内容。如你所知,你可以使用in运算符: 过滤集合 即,找到满足特定条件的序列中的所有元素。你可以为此使用

  • 我是一个新手在python和我试图弄清楚,我如何区分2列表,如下所示 而且 问题是,这两个列表都有元素,我需要一个可靠的条件来满足,如果列表中有一个项是字符串而不是。列表也可能有7个,只有一个项目是字符串。

  • 我正在尝试拆分一个word文档,该文档如下所示: 1.0列表项 1.1列表项 1.2列表项 2.0列表项 它存储在docx中,我正在使用python-docx尝试解析它。不幸的是,它在开始时失去了所有的编号。我试图识别每个有序列表项的开始。 python-docx库也允许我访问样式,但是我不知道如何确定样式是否是列表样式。 到目前为止,我一直在处理函数和检查输出,但标准格式类似于: 我一直在使用它

  • 如何在Python中找到列表的中值?列表可以是任何大小,并且不能保证数字按任何特定顺序排列。 如果列表包含偶数个元素,则函数应返回中间两个元素的平均值。 以下是一些示例(出于显示目的进行了分类):

  • 问题内容: 如果我有这个: 然后在a中找到b: 有没有办法对列表做类似的事情?像这样: False的结果是可以理解的-因为它正确地寻找了一个元素’de’,而不是(我恰好想要它做的)’d’之后是’e’ 这是可行的,我知道: 我可以处理数据以获得所需的内容-但是有没有一种简短的Pythonic方式可以做到这一点? 需要说明的是:我需要在此处保留顺序(b = [‘e’,’d’],应返回False)。 如

  • 问题内容: 我很新,我希望它不太明显,但是我似乎无法为以下问题找到一个简短而准确的答案。 我有两个清单: 我想查找第二个列表()的所有索引何时在第一个列表()中,以便得到如下内容: b在a中的索引:或 问题答案: 具有列表理解: 或使用for循环: