@@ -632,9 +632,9 @@ def str_split(arr, pat=None, n=None, return_type='series'):
632
632
pat : string, default None
633
633
String or regular expression to split on. If None, splits on whitespace
634
634
n : int, default None (all)
635
- return_type : {'series', 'index', 'frame'}, default 'series'
636
- If frame, returns a DataFrame (elements are strings)
637
- If series or index , returns the same type as the original object
635
+ return_type : {'series', 'index', 'frame', 'same', 'expand' }, default 'series'
636
+ If frame or expand , returns a DataFrame (elements are strings)
637
+ If series, index or same , returns the same type as the original object
638
638
(elements are lists of strings).
639
639
640
640
Notes
@@ -649,9 +649,9 @@ def str_split(arr, pat=None, n=None, return_type='series'):
649
649
from pandas .core .frame import DataFrame
650
650
from pandas .core .index import Index
651
651
652
- if return_type not in ('series' , 'index' , 'frame' ):
653
- raise ValueError ("return_type must be {'series', 'index', 'frame'}" )
654
- if return_type == 'frame' and isinstance (arr , Index ):
652
+ if return_type not in ('series' , 'index' , 'frame' , 'same' , 'expand' ):
653
+ raise ValueError ("return_type must be {'series', 'index', 'frame', 'same', 'expand' }" )
654
+ if return_type in [ 'frame' , 'expand' ] and isinstance (arr , Index ):
655
655
raise ValueError ("return_type='frame' is not supported for string "
656
656
"methods on Index" )
657
657
if pat is None :
@@ -668,7 +668,7 @@ def str_split(arr, pat=None, n=None, return_type='series'):
668
668
n = 0
669
669
regex = re .compile (pat )
670
670
f = lambda x : regex .split (x , maxsplit = n )
671
- if return_type == 'frame' :
671
+ if return_type == 'frame' or return_type == 'expand' :
672
672
res = DataFrame ((Series (x ) for x in _na_map (f , arr )), index = arr .index )
673
673
else :
674
674
res = _na_map (f , arr )
0 commit comments