【发布时间】:2018-10-31 19:04:14
【问题描述】:
我想将 pandas 剪切功能应用于包含 NaN 的系列。期望的行为是它将非 NaN 元素分桶并为 NaN 元素返回 NaN。
import pandas as pd
numbers_with_nan = pd.Series([3,1,2,pd.NaT,3])
numbers_without_nan = numbers_with_nan.dropna()
对于没有 NaN 的系列,切割效果很好:
pd.cut(numbers_without_nan, bins=[1,2,3], include_lowest=True)
0 (2.0, 3.0]
1 (0.999, 2.0]
2 (0.999, 2.0]
4 (2.0, 3.0]
当我剪切包含 NaN 的系列时,元素 3 正确返回为 NaN,但最后一个元素分配了错误的 bin:
pd.cut(numbers_with_nan, bins=[1,2,3], include_lowest=True)
0 (2.0, 3.0]
1 (0.999, 2.0]
2 (0.999, 2.0]
3 NaN
4 (0.999, 2.0]
我怎样才能得到以下输出?
0 (2.0, 3.0]
1 (0.999, 2.0]
2 (0.999, 2.0]
3 NaN
4 (2.0, 3.0]
【问题讨论】: