Я знаю, что было задано несколько вопросов относительно использования nunique () с groupby, но я получаю другое сообщение об ошибке.Следующий код работает нормально:
d = {'PDOS': [1, 1, 2, 2], 'CPT' : ["123", "123", "456", "456"], 'BC': ["A", "A", "A", "B"], 'Other': [1,2,3,4]}
df = pd.DataFrame(data = d)
df = df.merge(df[["PDOS", "CPT", "BC"]].groupby(["PDOS", "CPT"]).count(), how = "left", on = ["PDOS", "CPT"])
, и я получаю новый столбец ("BC_y"), который дает мне количество строк BC для каждой группы. Однако, если я изменю значение, то 1004 *
Последняя строка для использования nunique () выглядит следующим образом:
df = df.merge(df[["PDOS", "CPT", "BC"]].groupby(["PDOS", "CPT"]).nunique(), how = "left", on = ["PDOS", "CPT"])
Я получаю сообщение об ошибке:
Вы пытаетесь объединить столбцы объекта и int64.Если вы хотите продолжить, вы должны использовать pd.concat
Я думаю, причина может заключаться в том, что при использовании nunique () столбцы «PDOS» и «CPT» отображаются как индекс, а также столбцы.
Как получить количество уникальных значений вместо количества строк в группе?