В целях контекста представьте себе форум inte rnet с темами и сообщениями. Каждая тема и каждое сообщение имеют свой уникальный идентификатор. Кроме того, несколько сообщений могут быть связаны с темой (можно также представить людей (= сообщения) и семейства (= темы), к которым они принадлежат):
У меня есть кадр данных в pandas с двумя столбцами : thread_id
и post_id
. Каждая строка в моем датафрейме - это пост на этом форуме. thread_id
показывает, к какой теме принадлежит сообщение, а post_id
показывает уникальный идентификатор сообщения.
Теперь я хочу добавить третий столбец: thread_size
. Показывает, к какой теме принадлежит сообщение. Этот столбец имеет одно из трех различных значений: small
, medium
или big
. Значение выбирается в зависимости от, как вы уже догадались, размера потока. Существует два порога (верхний и нижний), по которым измеряется размер потока.
Я попытался сгруппировать сообщения по темам, а затем установить размер thread_size
, используя a для l oop, и если, elif, еще заявления. Но это не похоже на работу:
forum["thread_size"] = np.nan
for thread_id, frame in forum.groupby(["thread_id"]):
post_count = frame.size
if post_count > 400:
frame["thread_size"] = "big"
elif post_count > 300:
frame["thread_size"] = "medium"
else:
frame["thread_size"] = "small"
РЕДАКТИРОВАТЬ: Думайте о forum
как о городе (информационном кадре) с людьми, принадлежащими к семьям. Каждая строка в моем фрейме данных представляет человека (сообщение), принадлежащего семье (поток). Я хочу расширить city-dataframe с помощью столбца с именем family-size
. Таким образом, у каждого человека (строки) теперь есть информация, к какой семье он принадлежит, и принадлежат ли они к семье big
, medium
или small
: До:
[name] [family]
oscar potter
frederic minamisawa
blerim meier
marina minamisawa
После:
[name] [family] [family-size]
oscar potter small
frederic minamisawa big
blerim meier medium
marina minamisawa big