Divide columns in a DataFrame by a Series (result is only NaNs?)

前端 未结 1 581
心在旅途
心在旅途 2021-01-25 20:14

I\'m trying to do a similar thing to what is posted in this question: Python Pandas - n X m DataFrame multiplied by 1 X m Dataframe

I have an n x m DataFrame, with all n

相关标签:
1条回答
  • 2021-01-25 21:10

    The cause of NaNs are due to misalignment of your indexes. To get over this, you will either need to divide by numpy arrays,

    # <=0.23
    df.values / df2[['x']].values  # or df2.values assuming there's only 1 column
    # 0.24+
    df.to_numpy() / df[['x']].to_numpy()
    
    array([[0.09090909, 0.18181818, 0.27272727],
           [0.33333333, 0.41666667, 0.5       ],
           [0.53846154, 0.61538462, 0.69230769]])
    

    Or perform an axis aligned division using .div:

    df.div(df2['x'], axis=0)
              a         b         c
    0  0.090909  0.181818  0.272727
    1  0.333333  0.416667  0.500000
    2  0.538462  0.615385  0.692308
    
    0 讨论(0)
提交回复
热议问题