如何根据另外两个系列及其索引创建一个熊猫系列?

时间:2018-03-28 20:13:08

标签: python pandas indexing

鉴于两个具有相同指数的熊猫系列:

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

2 个答案:

答案 0 :(得分:2)

选项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

答案 1 :(得分: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