2016-11-14 4 views
2

Вот мой dataframКак создать значения в столбце на основе прежних значений в одном столбце?

df=pd.Dataframe([{'RegionName':'Alabama', 'State':'Alabama'}, 
       {'RegionName':'Auburn', 'State':np.NaN}, 
       {'RegionName':'Florence', 'State':np.NaN}, 
       {'RegionName':'Arizona', 'State':'Arizona'}, 
       {'RegionName':'Flagstaff', 'State':np.NaN}, 
       {'RegionName':'Tempe', 'State':np.NaN}]) 

Теперь столбец «Состояние» на «Auburn» и «Флоренция» должно быть «Алабама», для «Флагшток» и «Темпе» должно быть «Аризона». Как это сделать с помощью панд?

ответ

0

вы просто хотите отправить заполнить

df.ffill() 

enter image description here


ответ на комментарий

pd.concat([d.iloc[1:] for _, d in df.ffill().groupby('State')]) 

enter image description here

+0

Большое вам спасибо. И как сбросить первое значение для всех повторяющихся состояний? В этом случае, как сбросить индекс 0 и индекс 3 без использования индекса drop? –

+0

@SeanLiao обновленный пост – piRSquared

Смежные вопросы