Используя Pandas в Python 3, как отфильтровать повторяющиеся строки в столбце внутри фрейма данных? - PullRequest
0 голосов
/ 25 июня 2018

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

import glob 
import pandas as pd

files = glob.glob('data/years/*.txt')
data_list = []
Count = 0

for f in files:
    data = pd.read_csv(f)
    data_list.append(data)

df = pd.concat(data_list)
Female_df = df[df['Sex'] == 'F']
Male_df = df[df['Sex'] == 'M']

Count_female = len(Female_df.index)
Count_male = len(Male_df.index)

Top_10_Female = Female_df.sort_values('Count', ascending = False)
Top_10_Female

Выход:

      Sex   Year     Name   Count
1234    F   1947    Linda   99685
1216    F   1948    Linda   96210
1183    F   1949    Linda   91013
1186    F   1950    Linda   80439
1354    F   1921    Mary    73983
1234    F   1951    Linda   73970
1394    F   1924    Mary    73533

Ожидаемый результат:

      Sex   Name
1234    F   Linda
1354    F   Mary
...

1 Ответ

0 голосов
/ 25 июня 2018

Если вы хотите получить сумму количества вхождений имени, вы можете использовать 'groupby':

df.groupby('Name')['Count'].sum()

Пожалуйста, ознакомьтесь с документацией по pandas.Series.groupby

Если вы хотите удалить только повторяющиеся имена, вы также можете использовать «drop_duplicates» (указав столбец):

df.drop_duplicates('Name')

Документация: pandas.DataFrame.drop_duplicates

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