3

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

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

PS我使用的是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
4

2 回答 2

3

这是因为''是最小值:

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

In [12]: s2.min() == ''
Out[12]: True
于 2013-07-05T22:08:57.693 回答
3

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

>>> import pandas as pd
>>> s2 = pd.Series(['alpha', '', 'charlie', 'delta'])
>>> s2[s2 != ''].min()
'alpha'
于 2013-07-05T22:09:41.527 回答