#python #pandas
#python #pandas
Вопрос:
Я хочу заполнить столбец фрейма данных, как показано в примере.
df=pd.DataFrame({'A':['a','','','a','','b','b','','b','']})
я хочу заменить пустые значения между двумя строками, имеющими одинаковое значение:
вывод:
Можем ли мы сделать это без iterrows?
Ответ №1:
Сначала замените пустые строки на отсутствующие значения, а затем сравните значения прямого и обратного заполнения и используйте только совпадающие значения:
df=pd.DataFrame({'A':['a','','','a','','b','b','','b','']})
s = df.A.replace('', np.nan)
s1 = s.ffill()
s2 = s.bfill()
df.A = s1.where(s1.eq(s2), '')
print (df)
A
0 a
1 a
2 a
3 a
4
5 b
6 b
7 b
8 b
9