Ниже приведен образец гораздо большего кадра данных.Если фамилии аналогичны в столбце [Имя], заполните отсутствующие значения другого столбца
Fare Cabin Pclass Ticket Name
257 86.5000 B77 1 110152 Cherry, Miss. Gladys
759 86.5000 B77 1 110152 Rothes, the Countess. of (Lucy Noel Martha Dye...
504 86.5000 B79 1 110152 Maioni, Miss. Roberta
262 79.6500 E67 1 110413 Taussig, Mr. Emil
558 79.6500 E67 1 110413 Taussig, Mrs. Emil (Tillie Mandelbaum)
585 79.6500 NaN 1 110413 Taussig, Miss. Ruth
475 52.0000 A14 1 110465 Clifford, Mr. George Quincy
110 52.0000 C110 1 110465 Porter, Mr. Walter Chamberlain
335 26.0000 C106 1 110469 Maguire, Mr. John Edward
158 26.5500 D22 1 110489 Borebank, Mr. John James
430 26.5500 C52 1 110564 Bjornstrom-Steffansson, Mr. Mauritz Hakan
236 75.2500 D37 1 110813 Warren, Mr. Frank Manley
366 75.2500 D37 1 110813 Warren, Mrs. Frank Manley (Anna Sophia Atkinson)
191 26.0000 NaN 1 111163 Salomon, Mr. Abraham L
170 33.5000 B19 1 111240 Van der hoef, Mr. Wyckoff
462 38.5000 E63 1 111320 Gee, Mr. Arthur H
329 57.9792 Nan 1 111361 Hippach, Miss. Jean Gertrude
523 57.9792 B18 1 111361 Hippach, Mrs. Louis Albert (Ida Sophia Fischer)
Если я хочу итерацию заполнения недостающих значений «Каюта» для людей, которые пропали без вести «Cabin» ценности, с чьим-то ценностями «кабина», только если
кто-то другое (тот, у кого есть значение кабины) имеет ту же самую фамилию, а также находится в непосредственной близости от себя (как в одном выше, либо ниже).
Таким образом, в кадре данных [Tassuig, Miss.Ruth] значение кабины «Нан» будет заменено значением кабины [Tassuig, Mrs.Emil] [E67], который является одним над собой потому что оба условия выполнены. (То же фамилия и в его окрестностях)
И недостающее значение кабины Гиппаха, мисс Жан Гертруда будет заменено на [Хиппах, миссис Луис Альберт (Ida Sophia Fischer)] Значение кабины [В18].
Я пытался придумать итерации, но это, насколько я получил
for x in df.Name.str.split(',')[x][0] ==df.Name.str.split(',')[x+1][0]:
if df.Cabin[x] or df.Cabin[x+1] == np.nan:
df.Cabin.replace(np.nan,
Я хочу, чтобы убедиться, что np.nan значение заменяется на истинное значение и не np.nan. Не удалось выяснить, как это сделать.
Спасибо.
Очень хорошее решение –
@BobHaffner ty, ваш. – piRSquared
Спасибо за решение.Таким образом, этот код группирует все аналогичные фамилии с помощью groupby, а затем выполняет функцию bffill на элементах Кабины каждой группы? Таким образом, это гарантирует, что все элементы кабины одинаковы внутри каждой группы. Я правильно понимаю это? – Moondra