Я бы хотел применить функцию «Вырезать панд» к серии, включающей 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()
Резка отлично работает для серии без NaNs:
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, но последний элемент получает неправильный назначенный лот:
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]