2017-09-28 11 views
1

のリストに1列に変換した後、私はCSVファイルを持っているし、私のデータは次のようになります df = pd.read_csv('my.csv')パンダ - 文字列

を使ってパンダのデータフレームに読み込まoveralの要素を数える:このことから

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

データフレームは、私は2つの段階で、私の目標を達成したいと思います:

(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

@TongLiuこの '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 
関連する問題