Это мой первый вопрос о переполнении стека, и он может быть немного неуклюжим, поскольку я изучаю веревки - подсказки или указатели в вопросе форматирования приветствуются!Разделение одной колонки на многие, частота подсчета: объект «int» не является итерабельным
Я новичок в Python и есть вопрос, почти идентичный приведенному ниже:
how to split one column into many columns and count the frequency
Для моих данных, у меня есть две колонки, «регистратор» и «страницы», где регистратор представляет собой столбец IP-адресов в формате ненулевой строки объекта, а страница представляет собой рандомизированный 1-10 ненулевой номер int, представляющий веб-страницу, которую посетил журнал. Примером этого является ниже:
logger page
0 10.1.60.203 3
1 3.75.190.181 5
2 10.1.60.203 4
3 10.1.60.203 6
4 10.1.60.253 1
То, что я хотел бы сделать, это должно иметь одну строку для каждого уникального IP в столбце регистратора, и иметь ряд колонн с 1-10, представляющих общее количество просмотров страниц для каждой страницы для каждого IP-адреса, которые затем подсчитанных для каждого столбца, как показано ниже:
logger page1 page2 page3 page4 page5 ...
0 10.1.60.203 5 7 14 7 2
1 3.75.190.181 10 3 20 8 6
2 10.1.60.253 22 9 2 12 18
Я пробовал много разных вариантов, чтобы работать через это - сводные таблицы, GroupBy, но я, похоже, не могу окунуться в вопрос о том, как получить счетчики в свои уникальные столбцы на каждый IP-адрес. Когда я столкнулся с другим форумом, я почувствовал, что этот ответ должен работать неплохо, но, к сожалению, я сталкиваюсь с ошибкой, что объект «int» не является итерируемым. Вот код от этого пользователя, что я в настоящее время работает с:
df2 = pd.DataFrame([x for x in df['page'].apply(
... lambda item: dict(map(
... lambda x: (x,1),
... item))
... ).values]).fillna(0)
>>> df2.join(df)
Я могу немного понять, что вышеупомянутые средства ошибок, но я не уверен в способности работать вне ответ там. Любая помощь с этой ошибкой или конкретным, или с более широким решением моей проблемы, будет очень признательна.
Спасибо!
Каков результат вашей 'df ['page']. Apply (...)' call? –
@PatrickHaugh Привет, Патрик, результат моего 'df ['page']. Apply (...)' is: 'TypeError: 'int' object is iterable' –