2017-03-19 5 views
1

私はいくつかのカラム(機能)を持つデータフレームを持っています。pandasのmode()の不快な出力データフレーム

>>> print(df) 

    col1 col2 
a  1  1 
b  2  2 
c  3  3 
d  3  2 

私はそのうちの1つのモードを計算したいと思います。これはどうなりますか:

>>> print(df['col1'].mode()) 

0 3 
dtype: int64 

単純に値3を出力したいと思います。あなたは以下の非常に類似したコードが動作していることを考慮すれば これbehavoiurは、非常に奇妙です:

>>> print(df['col1'].mean()) 

2.25 

ので、2つの質問:なぜこれが起こるのでしょうか?どのようにして純粋なモードの値を得ることができるのですか?

答えて

1

Series.mode()は、複数の値を返すことができますので:ドキュメンテーション文字列から

In [77]: df 
Out[77]: 
    col1 col2 
a  1  1 
b  2  2 
c  3  3 
d  3  2 
e  2  3 

In [78]: df['col1'].mode() 
Out[78]: 
0 2 
1 3 
dtype: int64 

は、次のDFを検討

空何を少なくとも2回発生していない場合。 値が1つのみの場合でも常に シリーズを返します。

あなたが最初の値を選んだにしたい場合:

In [83]: df['col1'].mode().iloc[0] 
Out[83]: 2 

In [84]: df['col1'].mode()[0] 
Out[84]: 2 
+0

こんにちはmaxとあなたの助けに感謝を。私の2番目の質問はどうですか? – Bernheart

+0

@Bernheart、私は私の答えを更新しました - チェックしてください – MaxU

関連する問題