Closed
Description
While working on #23167, I found a corner case where Index.str.partition
and Index.str.rpartition
break in the presence of NaNs. I do not believe this is intentional (and it's not mentioned in the docs):
>>> import pandas as pd
>>> pd.Index(['a', 'b', 'c']).str.partition(' ') # works
MultiIndex(levels=[['a', 'b', 'c'], [''], ['']],
labels=[[0, 1, 2], [0, 0, 0], [0, 0, 0]])
>>>
>>> pd.Index(['a', np.nan, 'c']).str.partition(' ')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\ProgramData\Miniconda3\envs\pandas-dev\lib\site-packages\pandas\core\strings.py", line 2391, in partition
return self._wrap_result(result, expand=expand)
File "C:\ProgramData\Miniconda3\envs\pandas-dev\lib\site-packages\pandas\core\strings.py", line 2014, in _wrap_result
out = MultiIndex.from_tuples(result, names=name)
File "C:\ProgramData\Miniconda3\envs\pandas-dev\lib\site-packages\pandas\core\indexes\multi.py", line 1326, in from_tuples
arrays = list(lib.to_object_array_tuples(tuples).T)
File "pandas/_libs/src\inference.pyx", line 1559, in pandas._libs.lib.to_object_array_tuples
TypeError: object of type 'float' has no len()