2017-06-03 9 views
0

私は 'A'、 'B'、 'C​​'、 'D'の列の値を含むデータフレームを持っています...これはちょうどいくつかの並べ替えのグループです。私は、列の値とその数のヒストグラムを生成したかったのです。Seaborn DistplotとBarplot

import seaborn as sns 
sns.distplot(dfGroupingWithoutNan['patient_group']) 

これは、エラーを生成:

TypeError: unsupported operand type(s) for /: 'str' and 'int' 

distplotに精通していないイムは、私はそれを正しい方法を使用していないので、私は多分思いました。私は思っていた、私はそれにシリーズを渡すことができますし、それは各値の数を決定し、それに応じてヒストグラムに表示することができるようになります。

とにかく、私は他の解決策を考えました。これが私が思いついたものです。

series1 = dfGroupingWithoutNan['patient_group'].value_counts() 
dfPatientGroup = pd.DataFrame({'levels' : series1.index, 'level_values' : series1.values}) 

sns.set_style("whitegrid") 
sns.barplot(x="levels", y="level_values", data=dfPatientGroup) 

私はバープロットを使用してもそのカウントに対する各値のプロットを生成することができました。この時間。

私は、distplotを使用するとどのように機能するかなど、これを行うための他の方法はありましたか?また、値と数を保持する何らかの種類のリポジトリを持つために、本当に新しいデータフレームを作成する必要がありますか?私は考えていましたが、新しいデータフレームを作成する手間を経ることなく、ディストリビュートが自動的にカウントを決定することはできませんでしたか?

答えて

0

これを行うにはCounterを使用します。ロジックは、あなたがやっていることに非常に似ていますが、あなたは、余分なデータフレームを作成する必要はありません。

from collections import Counter 
cnt = Counter(dfGroupingWithoutNan.patient_group) 
sns.barplot(x=cnt.keys(), y=cnt.values()) 

私は自動的にseabornまたはmatplotlibヒストグラムに文字列値を扱うすべてのソリューションを認識していませんよ。

+1

'df ['patient_group']を実行する方が簡単です。value_counts()' –

+0

@PaulHあなたのコメントを詳しく教えてください。 –

関連する問題