python - Pandas: Trouble Updating Rows Conditionally -
i have following dataframe:
>>>df rtt requests asn 1000 4000 100 2000 50 nan 3000 18000 300 my goal divide rtt requests in place if requests not nan, otherwise leave rtt untouched. i've tried various things , either second row gets set nan so:
>>>df rtt requests asn 1000 40 100 2000 nan nan 3000 60 300 or dataframe isn't updated @ all
desired final output
>>>df rtt requests asn 1000 40 100 2000 50 nan 3000 60 300
use fillna
in [1889]: df['rtt'] = df['rtt'].div(df['requests']).fillna(df['rtt']) in [1890]: df out[1890]: rtt requests asn 1000 40.0 100.0 2000 50.0 nan 3000 60.0 300.0 or, / instead of div
in [1895]: (df['rtt'] / df['requests']).fillna(df['rtt']) out[1895]: asn 1000 40.0 2000 50.0 3000 60.0 dtype: float64 or, combine_first
in [1897]: df['rtt'].div(df['requests']).combine_first(df['rtt']) out[1897]: asn 1000 40.0 2000 50.0 3000 60.0 dtype: float64
Comments
Post a Comment