Pandas Dataframe показывает значение в столбце, которое появляется более десяти раз - PullRequest
0 голосов
/ 11 октября 2019

В настоящее время я анализирую файл .csv, в котором указаны имена, год рождения и пол собак в данном городе. Я хочу отфильтровать год рождения, где родилось менее 10 собак. Каков будет правильный способ сделать это?

    name                        birth_year                gender
0   "Bobby" Lord Sinclair           2009                    m
1   "Buddy" Fortheringhay's J.      2011                    m
2   "Zappalla II" Kora v. Tüfibach  2011                    w
3   (Karl) Kaiser Karl vom Edersee  2013                    m
4   A-Diana                         2006                    w

Данные выглядят примерно так, список намного длиннее. Я хочу отфильтровать значения birth_year, которые встречаются менее 11 раз. Я начал с использования

df[df["birth_year"] < 11]

, но это, очевидно, отфильтровывает 11-й год рождения и снижает саму себя, а не сумму

Привет

Ответы [ 2 ]

0 голосов
/ 13 октября 2019

Неясно, хотите ли вы сохранить строки в группах с 10 или менее, или выбросить строки в группах с 10 или менее. Измените > на <= соответственно.

g = df.groupby("birth_year")
g.filter(lambda x: x.name.count() > 10)
0 голосов
/ 11 октября 2019

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

df['some'] = df[df[dog] < 10];

или pd querys

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.query.html

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