Как узнать количество неуникальных строк после groupby () - PullRequest
0 голосов
/ 27 октября 2018

У меня есть фрейм данных df с двумя функциями: ID_owner, ID_phone, я должен найти:

  1. Сколько людей имеют более n телефонов.
  2. Телефоны распределены между несколькими владельцами, ID_phone с одним или несколькими ID_owner.

Чтобы ответить на первый вопрос, я попытался:

df.groupby('`ID_owner`')['`ID_phone'].nunique().to_frame()

Кажется, это не работает, потому что мне нужно посчитать количество повторяющихся строк на ID_owner после группировки.Я столкнулся с той же проблемой во втором вопросе.

Я хотел бы знать, существует ли конкретный метод или функция в pandas для такого рода проблем.

Вывод дляпервым вопросом должен быть блок данных с двумя столбцами: один показывает ID_owner, а второй - количество смартфонов, которыми владеет ID_owner.

Ответы [ 2 ]

0 голосов
/ 28 октября 2018
df1.groupby('ID_owner').agg({'ID_phone': 'unique'}).reset_index()

или вы можете использовать следующий способ

df1.groupby('User_owner').apply(lambda x:x.zipcode.unique()).reset_index()

это даст вам вывод:

    User_owner  zipcode
0   Dave        [34567]
1   Donald      [34353]
2   Jae         [12345]
3   Shankar     [23456, 22222]

но для подсчета вы можете использовать уникальную функцию:

df1.groupby('ID_owner').agg({'ID_phone': 'nunique'}).reset_index().rename(columns = {'zipcode':'count'})

или

df1.groupby('User_owner').apply(lambda x:x.zipcode.nunique()).reset_index(name ='count')

, что приведет к

    User_owner  count
0   Dave        1
1   Donald      1
2   Jae         1
3   Shankar     2
0 голосов
/ 27 октября 2018

Похоже, что вы нарезали свою таблицу преждевременно, хотя кажется, что вы хотите сохранить агрегированную таблицу. Чтобы ответить на ваш первый вопрос, подойдет следующий код.

n = 2

(df.groupby('ID_owner').agg({'ID_phone': pd.Series.nunique}).query('ID_phone > @n').shape[0]

Чтобы ответить на второй вопрос, вы можете изменить идентификаторы в приведенном выше запросе, изменить n и выбрать столбец «ID_phone».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...