2017-12-19 17 views
0

공통된 아기 이름을 가진 판다 데이터 프레임이 다른 행에 나열되어 있습니다. 각 행의 각 이름을 반복하고 알파벳의 각 문자가 아기 이름의 마지막 문자로 나타나는 횟수를 가져와야합니다. 그런 다음 키와 값의 사전을 반환해야합니다. 여기서 키는 26 자의 알파벳 문자이고 값은 데이터 프레임의 모든 아기 이름에서 알파벳 문자가 마지막 문자로 나타나는 빈도입니다. sample of pandas datafram정규식, 카운터 또는 문자열 메서드를 사용하여 팬더 데이터 프레임을 반복하고 사전을 반환하는 방법?

정규식을 사용하여 for 루프를 사용합니까? 카운터를 사용합니까? 열을 시리즈로 변환 한 후 문자열 메서드를 사용합니까? 루프와 정규 표현식을위한 관련하여

은, 지금까지 나는 시도했다 :

import re 

for index, row in male_names.iterrows(): 
    male_last_letter_freq = row['name'](r'/(\w)\b/') 
    male_letter_freq.update(male_last_letter_freq) 

male_last_letter_freq 

는 분명히, 나는 루프 내에서 정규 표현식을 포함하는 구문을 모른다.

male_name_series = male_names['name'] 
male_name_series.str.extract(r'/(\w)\b/') 

두 가지 방법이 오류를 반환 :

는 또한 일련의에 dataframe에서 '이름'열을 켜고 방법 .str 일부 팬더 전화를 시도했다. 나는 정말 그런 특별한 일을하는 방법에 대한 손실이 있습니다. 어떤 도움이라도 대단히 감사하겠습니다.

+0

한 가지는 확실합니다. Python 패턴에서 정규 표현식 구분 기호를 사용하지 마십시오. 'r '\ w \ b''를 사용하여 "words"의 마지막 단어 char와 일치시킵니다. –

+0

문자열은 문자 목록입니다. 마지막 문자는'name [: - 1]'.... –

답변

0

내가 제대로 질문을 이해한다면 당신은 정규 표현식이 필요하지만, 단지 사용하지 마십시오

dict(pd.value_counts(df["name"].str[-1])) 

설명 : 마지막 문자, pd.value_counts 카운트 고유 한 값을 추출 df["name"].str[-1]는 마지막으로 dict는 사전에 개체를 변환

+0

@ user2314737 고맙습니다. 이것은 효과가 있었다. 이제는 팬더 데이터 프레임에 사전을 그릴 수 있도록 문자와 주파수에 대한 키 및 값 표제를 어떻게 작성합니까? 또는 이미 제공 한 코드에 포함 할 수있는 메서드가 있습니까?이 메서드는 데이터 프레임으로 변환 할 것입니까? 알파벳 문자가 x 축이되어야합니다. – Danny