在清理文本數據時,對pandas Series(序列)可以使用map函數,所有的字符串都可以應用字符串函數或正則表達式,但是如果存在NA,就會報錯。爲了解決這個問題,Series有一些可以跳過NA值的字符串操作方法,這可以通過Series的str屬性來訪問。
s1 = pd.Series(['Mouse', 'dog', 'house and parrot', '23', np.NaN]) s1.str.contains('og', regex=False) 0 False 1 True 2 False 3 False 4 NaN dtype: object
通過str屬性來調用字符串函數,處理非NA的文本數據。常用的字符串函數:
- Series.str.contains:文本是否包含特定的字符串
- Series.str.get:獲得特定位置處的字符
- Series.str.index:獲得特定文本在原始文本中的位置即索引,索引從0開始。
- Series.str.endswith:文本是否以特定文本結束
- Series.str.startswith:文本是否以特定的文本開始
- Series.str.find:從文本中查找特定的字符串
- Series.str.replace:替換文本
- Series.str.split:分割文本
- Series.str.trip:移除文本開頭和結尾的空白格
- Series.str.slice:子字符串
- Series.str.match:是否匹配特定的正則表達式
參考文檔: