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

Popular posts from this blog

php - Vagrant up error - Uncaught Reflection Exception: Class DOMDocument does not exist -

vue.js - Create hooks for automated testing -

Add new key value to json node in java -