如何基于两个其他系列及其索引创建pandas系列?

3

假设有两个索引相同的pandas系列:

a = pd.DataFrame([5, 11], columns=['A'], index=[1, 2])
b = pd.DataFrame([2, 3], columns=['B'], index=[1, 2])

    A  
1   5  
2  11  

   B  
1  2  
2  3  

如何有效地创建一个具有相同索引的新系列,其中每个值为 (A的值-索引值)/B的值

  C
1 2  (= (5 - 1) / 2)
2 3  (= (11 - 2) / 3)

感谢您的帮助!
编辑:我注意到我的问题标题是关于系列的,但是正文和答案都是关于数据帧的。因此,如果有人想对系列a和b执行相同操作,方法如下:(a - a.index) / b
2个回答

2

选项1

a.A.sub(a.index).div(b.B).to_frame('C')

     C
1  2.0
2  3.0

Option 2
选项2
a.join(b).eval('C = (A - index) / B', inplace=False)

    A  B    C
1   5  2  2.0
2  11  3  3.0

2
您可以简单地执行以下操作:
c = ((a['A'] - a.index) / b['B'])
#1    2.0
#2    3.0
#dtype: float64

如果您希望将结果作为DataFrame:

c = pd.DataFrame(c, columns=["C"])
print(c)
#     C
#1  2.0
#2  3.0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接