Python 组合两只熊猫系列?

Python 组合两只熊猫系列?,python,pandas,Python,Pandas,我有两个熊猫系列,s1和s2,我想结合 s1 = pd.Series([2,5,5], index=['a','b','c']) s2 = pd.Series([2,4,7], index=['a','b','d']) 这就是我想要的结果: s3 = pd.Series([4,9,5,7], index=['a','b','c','d']) a 4 b 9 c 5 d 7 dtype: int64 我已经尝试了+运算符、s1.appends2和pd.join[s1,

我有两个熊猫系列,s1和s2,我想结合

s1 = pd.Series([2,5,5], index=['a','b','c'])
s2 = pd.Series([2,4,7], index=['a','b','d'])
这就是我想要的结果:

s3 = pd.Series([4,9,5,7], index=['a','b','c','d'])

a    4
b    9
c    5
d    7
dtype: int64
我已经尝试了+运算符、s1.appends2和pd.join[s1,s2],但它们并没有给出我想要的结果。

似乎add在这里可以工作

s1.add(s2,fill_value=0)
Out[145]: 
a    4.0
b    9.0
c    5.0
d    7.0
dtype: float64
似乎add在这里可以工作

s1.add(s2,fill_value=0)
Out[145]: 
a    4.0
b    9.0
c    5.0
d    7.0
dtype: float64

只需使用pandas.Series.add

s3 = s1.add(s2, fill_value=0)

#result
a    4.0
b    9.0
c    5.0
d    7.0
dtype: float64

只需使用pandas.Series.add

s3 = s1.add(s2, fill_value=0)

#result
a    4.0
b    9.0
c    5.0
d    7.0
dtype: float64
补充的替代方案

输出:

a    4.0
b    9.0
c    5.0
d    7.0
dtype: float64
补充的替代方案

输出:

a    4.0
b    9.0
c    5.0
d    7.0
dtype: float64
Numpy np.add.at 这有点可笑,但我想展示一些不同的东西

import numpy as np
import pandas as pd
from itertools import chain

k, v = zip(*chain(*map(pd.Series.items, [s1, s2])))
i, r = pd.factorize(k)
out = np.zeros(len(r), dtype=int)
np.add.at(out, i, v)
pd.Series(out, r)

a    4
b    9
c    5
d    7
dtype: int64
Numpy np.add.at 这有点可笑,但我想展示一些不同的东西

import numpy as np
import pandas as pd
from itertools import chain

k, v = zip(*chain(*map(pd.Series.items, [s1, s2])))
i, r = pd.factorize(k)
out = np.zeros(len(r), dtype=int)
np.add.at(out, i, v)
pd.Series(out, r)

a    4
b    9
c    5
d    7
dtype: int64

有一个简单的答案,直接从这里,你会得到它

在这里为您提供用例

第一个数据帧:

第二数据帧:

Simple DataFrame.add+fill_值,如文档所述:

>>> s1.add(s2, fill_value=0)
a    4.0
b    8.0
c    5.0
d    7.0
dtype: float64
文件:

填充值:无或浮点值,默认为无

填充现有缺少的NaN值,以及 数据帧对齐成功,计算前使用此值。如果 两个相应数据帧位置中的数据都缺少结果 将会失踪


有一个简单的答案,直接从这里,你会得到它

在这里为您提供用例

第一个数据帧:

第二数据帧:

Simple DataFrame.add+fill_值,如文档所述:

>>> s1.add(s2, fill_value=0)
a    4.0
b    8.0
c    5.0
d    7.0
dtype: float64
文件:

填充值:无或浮点值,默认为无

填充现有缺少的NaN值,以及 数据帧对齐成功,计算前使用此值。如果 两个相应数据帧位置中的数据都缺少结果 将会失踪


s1.adds2如何?s1.adds2如何?这很好,但当pandas DataFrame.add存在时,它看起来很长:-@pygo因此评论很可笑。我个人认为,这可以说明如何以不同的方式来做。如果人们看到这些备选答案,他们可能会将这些知识结合起来,并在以后找到更好的用途。当然,这对PPL是有好处的,而不是寻找这样的逻辑,thnx。这很好,但当pandas DataFrame.add存在时,似乎太长了:-@pygo因此评论很可笑。我个人认为,这可以说明如何以不同的方式来做。如果人们看到这些备选答案,他们可能会将这些知识结合起来,并在以后找到更好的用途。当然,这对PPL有好处,而对于寻找此类逻辑,thnx。这些是系列,因此正确的方法是pandas.Series.add。另外,@W-BThnx指出了这一点,链接只是站在正确的位置上,我知道它是由@W-B和Drew Nicolette提出的,但我想将其与原始文档联系起来,同时在这里展示用例,我坚定地相信获得和放置解释,喜欢这种风格,因为它有助于新手理解幕后故事:。这些是系列,所以正确的方法是pandas.Series.add。另外,@W-BThnx指出了这一点,链接只是站在正确的位置上,我知道它是由@W-B和Drew Nicolette提出的,但我想将其与原始文档联系起来,同时在这里展示用例,我坚定地相信得到并把解释和喜欢的风格,因为它有助于新手理解引擎盖下:。