Обратите внимание, я начинающий программист и начинающий пользователь python/pandas. Я ученый-бихевиорист и учусь использовать панд для обработки и организации своих данных. В результате некоторые из этих вопросов могут показаться совершенно очевидными и не достойными обсуждения на форуме. Пожалуйста, проявите терпимость! Для меня это дни работы, и я действительно потратил часы, пытаясь найти ответ на этот вопрос. Заранее благодарю за любую помощь.
Мои данные выглядят так. «Настоящие» данные субъекта и получателя всегда представляют собой 5-значные числа, а данные «поведения» всегда представляют собой буквенные коды. Моя проблема в том, что я также использую этот формат для специальных строк, обозначенных маркерами, такими как «дата» или «s» в столбце «Актер». Эти маркеры указывают, что столбец «Поведение» содержит этот особый тип данных, а не фактические данные о поведении. Итак, я хочу заменить маркеры в столбце «Актер» значениями NaN и получить специальные данные из столбца «Поведение», чтобы поместить их в другой столбец (в этом примере — пустой столбец «Активность»).
follow Activity Actor Behavior Recipient1
0 1 NaN date 2.1.3.2012 NaN
1 1 NaN s ss.hx NaN
2 1 NaN 50505 vo 51608
3 1 NaN 51608 vr 50505
4 1 NaN s ss.he NaN
До сих пор я написал некоторый код в pandas, чтобы выделить строки «s» в новый фрейм данных:
def get_act_line(group):
return group.ix[(group.Actor == 's')]
result = trimdata.groupby('follow').apply(get_act_line)
Я скопировал столбец «Поведение» в этом фрейме данных в столбец «Активность» и заменил значения «Актер» и «Поведение» на NaN:
result.Activity = result.Behavior
result.Behavior = np.nan
result.Actor = np.nan
result.head()
Итак, мой новый кадр данных выглядит так:
follow follow Activity Actor Behavior Recipient1
1 2 1 ss.hx NaN NaN NaN
34 1 hf.xa NaN NaN f.53702
74 1 hf.fe NaN NaN NaN
10 1287 10 ss.hf NaN NaN db
1335 10 fe NaN NaN db
Теперь я хотел бы объединить этот кадр данных с оригиналом, заменив все значения в этих выбранных строках, но сохранив значения для других строк в исходном кадре данных.
Это может показаться простым вопросом с очевидным решением, или, возможно, я с самого начала все сделал неправильно!
Я проработал книгу Уэса МакКинни, я прочитал документацию по различным типам слияний, сопоставлений, соединений, преобразований, конкатенаций и т. д. Я просмотрел форумы и не нашел ответа, который помог бы мне понять это. Ваша помощь будет очень признательна.