Adding two Series with NaNs

前端 未结 3 1056
孤街浪徒
孤街浪徒 2020-11-29 10:22

I\'m working through the \"Python For Data Analysis\" and I don\'t understand a particular functionality. Adding two pandas series objects will automatically align the index

3条回答
  •  自闭症患者
    2020-11-29 10:31

    It makes more sense to use pd.concat() as it can accept more columns.

    import pandas as pd
    import numpy as np
    
    a = pd.Series([35000,71000,16000,5000],index=['Ohio','Texas','Oregon','Utah'])
    b = pd.Series([np.nan,71000,16000,35000],index=['California', 'Texas', 'Oregon', 'Ohio'])
    
    pd.concat((a,b), axis=1).sum(1, min_count=1)
    

    Output:

    California         NaN
    Ohio           70000.0
    Oregon         32000.0
    Texas         142000.0
    Utah            5000.0
    dtype: float64
    

    Or with 3 series:

    import pandas as pd
    import numpy as np
    
    a = pd.Series([1, np.NaN, 4, 5])
    b = pd.Series([3, np.NaN, 5, np.NaN])
    c = pd.Series([np.NaN,np.NaN,np.NaN,np.NaN])
    
    print(pd.concat((a,b,c), axis=1).sum(1, min_count=1))
    
    #0    4.0
    #1    NaN
    #2    9.0
    #3    5.0
    #dtype: float64
    

提交回复
热议问题