Python (pandas): replace value if previous value is same as next value -
i have following problem:
i have got dataframe around 6 million rows. on of columns in data frame contains ids.
id nan nan d1 d1 d1 nan d1 d1 nan nan nan nan d2 nan d2 nan nan nan nan d3 nan d3 nan d3 nan nan
i want make nans included between ids same ids. above df should become:
id nan nan d1 d1 d1 d1 d1 d1 nan nan nan nan d2 d2 d2 nan nan nan nan d3 d3 d3 d3 d3 nan nan
does know how in fast, memory economical way? in advance.
using shift
, loc
. compare previous , next values using shift(1)
, shift(-1)
in [219]: df.loc[df.id.shift(-1) == df.id.shift(1), 'id'] = df.id.shift(1) in [220]: df out[220]: id 0 nan 1 nan 2 d1 3 d1 4 d1 5 d1 6 d1 7 d1 8 nan 9 nan 10 nan 11 nan 12 d2 13 d2 14 d2 15 nan 16 nan 17 nan 18 nan 19 d3 20 d3 21 d3 22 d3 23 d3 24 nan 25 nan
Comments
Post a Comment