pandas Dataframe

时间:2017-03-19 10:10:51

标签: python pandas dataframe

我有一个包含多个列(功能)的数据框。

>>> print(df)

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

我想计算其中一个的模式。这就是:

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

0    3
dtype: int64

我想输出值3。 如果您认为以下非常相似的代码有效,那么这种行为很奇怪:

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

2.25

所以有两个问题:为什么会这样?如何获得平均值的纯模式值?

1 个答案:

答案 0 :(得分:3)

因为Series.mode()可以返回多个值:

考虑以下DF:

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

来自docstring:

  

如果没有任何事情发生至少2次,则为空。 始终返回系列   即使只有一个值。

如果您想选择第一个值:

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

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