2017-09-28 6 views
1

문자열 목록에 하나의 열을 변환 한 후 overal 요소를 계산하고 내 데이터는 다음과 같습니다 df = pd.read_csv('my.csv')팬더 - 나는 CSV 파일이

사용 팬더 DataFrame로 읽어 :이에서

choice userid 
A\nB\nC 111111 
A\nC  222222 
B   333333 

DataFrame, 나는 두 단계로 나의 목표를 달성하기 위해 싶습니다

(1) '\ n을'

하여 선택 열의 값을 분할

(2) 내 CSV 파일에서 얼마나 많은 As, Bs 및 Cs 수를 계산하십시오. target = df['choice'].str.split('\n') target.value_counts()

을하지만 같은 오류가 발생했습니다 :

나는 시도했다 TypeError: unhashable type: 'list'

이 사람이 내 목표를 달성 할 수있는 방법을 말해 수 없습니다. 도와 줘서 고마워! 다음의

+0

가의'\의 n'와 불일치의 어떤 종류가있는 것 같습니다 데이터. 일부 행에는 \을 포함하는 모든 개행 문자가 포함됩니다. 어쨌든 여기에 제시된 것과 똑같은 데이터가 보이면'df.choice.str.split (r "[n \\] +)). apply (len) .sum()'을 시도해보십시오. – Abdou

+0

저는 데이터를 블록 쿼터 방식으로 포맷하는 데 약간의 어려움이있었습니다. 그것은 내 원래의 제출보다 좋아 보인다. –

+0

@ DongLiu이'df.choice.str.split (r "[n \\] +))을 시도하십시오. apply (pd.Series) .stack(). value_counts()'. – Abdou

답변

2

중 하나를 수행해야합니다

df.choice.str.split(r"[\\n]+", expand=True).stack().value_counts() 

또는

df.choice.str.split(r"[\\n]+").apply(pd.Series).stack().value_counts() 

은 모두 반환해야합니다 :

C 2 
A 2 
B 2 
dtype: int64 
관련 문제