【发布时间】:2016-09-03 06:58:16
【问题描述】:
在其中包含 NaN 的 pandas.core.series.Series 类型上使用 max() 和 min() 会发生什么?这是一个错误吗?见下文,
%matplotlib inline
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
mydata = pd.DataFrame(np.random.standard_normal((100,1)), columns=['No NaN'])
mydata['Has NaN'] = mydata['No NaN'] / mydata['No NaN'].shift(1)
# Both return NaN!
print(min(mydata['Has NaN']), max(mydata['Has NaN']))
# Still why False? Isn't float('nan') a singleton like None?
print(min(mydata['Has NaN']) == max(mydata['Has NaN']))
# But this time works well!
print(min([1, 2, 3, float('nan')]))
print('\n')
# When Series data type that has NaN bumps into min() and max(), what should
# I do? E.g.,
try:
n, bins, patches = plt.hist(mydata['Has NaN'], 10)
except ValueError as e:
print(e, '\nSeems "range" argument in hist() has problem!')
【问题讨论】:
标签: python pandas matplotlib dataframe