python處理文本數據


處理文本數據,主要是通過Seris的str訪問。遇到NaN時不做任何處理,保留結果為NaN,遇到數字全部處理為NaN。

str是Seris的方法,DataFrame不能直接使用,但是通過索引選擇DataFrame中的某一行或者某一列,結果為Seris,然后就可以使用了。

 

例如定義一個Seris和DataFrame如下

s = pd.Series([' ab',1,' bb ',np.nan,'bc '])
dic = {'one':[0,2,2,4],'two':[2,np.nan,4,6],'three':['a','b',np.nan,2]}
df = pd.DataFrame(dic,index=['d','e','f','g'])

將上述s全部變成大寫字母,將df的列名稱變成大寫。

s = s.str.upper()
df.columns = df.columns.str.upper()

 

以下都以Seris做示例,這些方法與python字符串的操作類似

print(s.str.lower())   #將s中的各字符串全部變為小寫
print(s.str.upper())   #將s中的各字符串全部變為大寫
print(s.str.capitalize())   #將s中的各字符串全部變為首字母大寫
print(s.str.len())    #求s中各字符串的長度
print(s.str.count('b'))   #求s中的各字符串元素包含幾個b
print(s.str.startswith('a'))   #判斷s中的各字符串是否以a開始
print(s.str.endswith('a'))   #判斷s中的各字符串是否以a結束
print(s.str.contains('b'))  #判斷s中的各字符串是否包含b
print(s.str.strip())   #去掉s中字符串元素兩邊的空格
print(s.str.lstrip())   #去掉s中字符串元素左邊的空格
print(s.str.rstrip())   #去掉s中字符串元素右邊的空格
print(s.str.replace('原字符','替換字符',1))  #將原字符串替換為指定字符串,默認替換所有滿足條件的,n表示替換前n個滿足條件的

 

split()和rsplit()

split()表示從左邊開始分割,rsplit()表示從右邊分割,分割后的結構為一個列表

s = pd.Series(['a,b,c,d',np.nan,['a..c'],'1,2,3'])
print(s.str.split(','))   #對Seris中的元素按照,分割,即對'a,b,c'、np.nan、['a..c']、'1,2,3'按照,分割
print(s.str.split(',').str[0])   #獲取每個元素分割后的第一個值,分割后的結果也為Seris,也需要通過str來獲取每個元素
print(s.str.split(',',expand=True,n=1))  #expand為True表示將原列按照分割符拆分為㢵列,n表示拆分次數,默認不拆分,如果拆分默認拆分最多次
# 0    [a, b, c, d]
# 1             NaN
# 2             NaN
# 3       [1, 2, 3]
# dtype: object
# 0      a
# 1    NaN
# 2    NaN
# 3      1
# dtype: object
#      0      1
# 0    a  b,c,d
# 1  NaN    NaN
# 2  NaN    NaN
# 3    1    2,3

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM