#python #pandas #dictionary
#питон #панды #словарь
Вопрос:
Я пытаюсь ввести агрегированное вхождение значений столбцов в отдельный столбец в том же Dataframe
самом . Я попытался подсчитать столбец дат и ввести эти события в dict
значение, а дату в качестве dict
ключа. Затем, когда я пытаюсь (логическое) сопоставить df["count"] = df[df[column]==my_dict.keys]
, логика меня подводит. Мне не хватает той части, где, если верно, введите my_dict.values().
То Dataframe
:
Date Place_code 14 2020-04-20 282 16 2020-04-23 301 18 2020-04-22 291 20 2020-04-22 422 21 2020-04-22 422
Желаемый Dataframe
результат:
Date Occurrence Place_code 14 2020-04-20 1 282 16 2020-04-23 1 301 18 2020-04-22 3 291 20 2020-04-22 3 422 21 2020-04-22 3 422
Также простите за название, английский не мой родной язык.
Ответ №1:
Вы могли бы попробовать этот лайнер:
df['Occurrence'] = df['Date'].replace(df.groupby('Date').apply(lambda x: len(x))
Комментарии:
1. Получение «неожиданного EOF при разборе».
2. У меня были некоторые проблемы с ответом выше, но вывод из него сработал:
df['counts'] = df.DATE.map(df.DATE.value_counts())
Ответ №2:
Один из вариантов-использовать transform
для возврата той же длины, что и исходный кадр данных:
df.assign(Occurence = df.groupby('Date').transform('count')) # df.assign(Occurence = df.groupby('Date').transform(len)) Date Place_code Occurence 14 2020-04-20 282 1 16 2020-04-23 301 1 18 2020-04-22 291 3 20 2020-04-22 422 3 21 2020-04-22 422 3