给定两个带有相同索引的熊猫系列:
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
什么是创建一个具有相同索引的新系列的有效方法,其中每个值为 (value of A - index) / value of B
,即
C
1 2 (= (5 - 1) / 2)
2 3 (= (11 - 2) / 3)
感谢您的帮助!
编辑:我注意到我的问题的标题是关于系列的,但是文本和答案是关于数据框的。因此,如果有人想对A和B系列做同样的事情,这就是:(a - a.index) / b
您可以简单地做:
c = ((a['A'] - a.index) / b['B'])
#1 2.0
#2 3.0
#dtype: float64
如果您希望结果作为数据框:
c = pd.DataFrame(c, columns=["C"])
print(c)
# C
#1 2.0
#2 3.0
选项1
a.A.sub(a.index).div(b.B).to_frame('C')
C
1 2.0
2 3.0
选项2
a.join(b).eval('C = (A - index) / B', inplace=False)
A B C
1 5 2 2.0
2 11 3 3.0