当系列包含缺失值时,pandas Series.min()不返回任何内容

时间:2013-07-05 22:03:50

标签: pandas

熊猫新手在这里。我有一系列dtype:object(包含字符串)。我注意到即使系列包含缺失值,Series.max()也可以找到按字母顺序排列的最大值。但是如果系列不包含缺失值,则Series.min()不起作用。见下图。

即使系列包含一些缺失值,有没有办法可以获得系列中的字母最小值?

P.S。我正在使用python 2.7.3,pandas 0.11.0。

import pandas as pd

# s1 contains no missing items
s1 = pd.Series(['alpha', 'bravo', 'charlie', 'delta'])

#s2 contains one missing item
s2 = pd.Series(['alpha', '', 'charlie', 'delta'])

print 's1 min: %s' % s1.min()
print 's1 max: %s' % s1.max()
print 's2 min: %s' % s2.min()
print 's2 max: %s' % s2.max()


##output:
##s1 min: alpha
##s1 max: delta
##s2 min: 
##s2 max: delta

2 个答案:

答案 0 :(得分:3)

那是因为''是最小值:

In [11]: '' < 'a'
Out[11]: True

In [12]: s2.min() == ''
Out[12]: True

答案 1 :(得分:3)

您可以在选择min之前选择空字符串以外的所有值:

>>> import pandas as pd
>>> s2 = pd.Series(['alpha', '', 'charlie', 'delta'])
>>> s2[s2 != ''].min()
'alpha'