切片字串
系列中的字串可以使用 .str.slice()
方法切片,或者更方便地使用括號(.str[]
)切片。
In [1]: ser = pd.Series(['Lorem ipsum', 'dolor sit amet', 'consectetur adipiscing elit'])
In [2]: ser
Out[2]:
0 Lorem ipsum
1 dolor sit amet
2 consectetur adipiscing elit
dtype: object
獲取每個字串的第一個字元:
In [3]: ser.str[0]
Out[3]:
0 L
1 d
2 c
dtype: object
獲取每個字串的前三個字元:
In [4]: ser.str[:3]
Out[4]:
0 Lor
1 dol
2 con
dtype: object
獲取每個字串的最後一個字元:
In [5]: ser.str[-1]
Out[5]:
0 m
1 t
2 t
dtype: object
獲取每個字串的最後三個字元:
In [6]: ser.str[-3:]
Out[6]:
0 sum
1 met
2 lit
dtype: object
獲取前 10 個字元的每個其他字元:
In [7]: ser.str[:10:2]
Out[7]:
0 Lrmis
1 dlrst
2 cnett
dtype: object
處理切片和索引時,Pandas 的行為與 Python 類似。例如,如果索引超出範圍,Python 會引發錯誤:
In [8]:'Lorem ipsum'[12]
# IndexError: string index out of range
但是,如果切片超出範圍,則返回空字串:
In [9]: 'Lorem ipsum'[12:15]
Out[9]: ''
當索引超出範圍時,Pandas 返回 NaN:
In [10]: ser.str[12]
Out[10]:
0 NaN
1 e
2 a
dtype: object
如果切片超出範圍,則返回空字串:
In [11]: ser.str[12:15]
Out[11]:
0
1 et
2 adi
dtype: object