激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - pandas中對文本類型數(shù)據(jù)的處理小結(jié)

pandas中對文本類型數(shù)據(jù)的處理小結(jié)

2022-02-22 00:18theskylife Python

這篇文章主要介紹了pandas中對于文本類型數(shù)據(jù)的處理匯總,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

下面看下pandas中字符串類處理函數(shù)吧,內(nèi)容如下所示:

 

1.英文字母大小寫轉(zhuǎn)換及填充

s = pd.Series(["lower", "CAPITALS", "this is a sentence", "SwApCaSe"])
  • 大寫轉(zhuǎn)小寫: s.str.lower()
  • 小寫轉(zhuǎn)大寫:s.str.upper()
  • 轉(zhuǎn)為新聞標題形式:s.str.title()
  • 首字母大寫,其余小寫:s.str.capitalize()
  • 將原來的大寫和小寫,分別轉(zhuǎn)為小寫和大寫,即大小寫互換:s.str.swapcase()
  • 將文字內(nèi)容用某種字符填充到固定長度,會從兩邊進行填充:s.str.center(4,"*")
  • 將文字內(nèi)容用某種字符填充到固定長度,可以設置填充方向(默認為left,可以設置為left,right,both):s.str.pad(width=10, side=‘right", fillchar="-")
  • 將文字內(nèi)容用某種字符填充到固定長度,會從文字的右方進行填充,即原來的字符串在左邊:s.str.ljust(4,"-")
  • 將文字內(nèi)容用某種字符填充到固定長度,會從文字的左方進行填充,即原來的字符串在右邊:s.str.rjust(4,"-")
  • 將文字內(nèi)容用某種字符按照指定的方向(left,right,both)填充到固定長度: s.str.pad(3,side=‘left",fillchar="*")
  • 在字符串前添加0到指定長度:
  • s = pd.Series(["-1", ‘1", ‘1000", 10, np.nan])
  • s.str.zfill(3)

 

2.字符串合并與拆分

 

2.1 多列字符串合并

注意:多列字符串在合并時,推薦使用cat函數(shù),該函數(shù)是按照索引進行合并的。

s=pd.DataFrame({"col1":["a", "b", np.nan, "d"],"col2":["A", "B", "C", "D"]})
# 1.有一個缺失值的行不進行合并
s["col1"].str.cat([s["col2"]])
# 2.用固定字符(*)替換缺失值,并進行合并
s["col1"].str.cat([s["col2"]],na_rep="*")
# 3.用固定字符(*)替換缺失值,并用分隔符(,)進行合并
s["col1"].str.cat([s["col2"]],na_rep="*",sep=",")
# 4.索引不一致的合并
#創(chuàng)建series
s = pd.Series(["a", "b", np.nan, "d"])
t = pd.Series(["d", "a", "e", "c"], index=[3, 0, 4, 2])
#合并
s.str.cat(t, join="left", na_rep="-")
s.str.cat(t, join="right", na_rep="-")
s.str.cat(t, join="outer", na_rep="-")
s.str.cat(t, join="inner", na_rep="-")

 

2.2 一列 列表形式的文本合并為一列

s = pd.Series([["lion", "elephant", "zebra"], [1.1, 2.2, 3.3], [
              "cat", np.nan, "dog"], ["cow", 4.5, "goat"], ["duck", ["swan", "fish"], "guppy"]])
#以下劃線進行拼接
s.str.join("_")

使用前:

pandas中對文本類型數(shù)據(jù)的處理小結(jié)

使用后:

pandas中對文本類型數(shù)據(jù)的處理小結(jié)

 

2.3 一列字符串與自身合并成為一列

s = pd.Series(["a", "b", "c"])
#指定數(shù)字
s.str.repeat(repeats=2)
#指定列表
s.str.repeat(repeats=[1, 2, 3])

使用該函數(shù)后,效果圖分別如下:

pandas中對文本類型數(shù)據(jù)的處理小結(jié)
pandas中對文本類型數(shù)據(jù)的處理小結(jié)

 

2.4 一列字符串拆分為多列

 

2.4.1 partition函數(shù)

partition函數(shù),會將某列字符串拆分為3列,其中2列為值,1列為分隔符。
有兩個參數(shù)進行設置,分別為:sep(分隔符,默認為空格),expand(是否生成dataframe,默認為True)

s = pd.Series(["Linda van der Berg", "George Pitt-Rivers"])
#默認寫法,以空格分割,會以第一個分隔符進行拆分
s.str.partition()
#另一寫法,會以最后一個分隔符進行拆分
s.str.rpartition()
#以固定符號作為分隔符
s.str.partition("-", expand=False)
#拆分索引
idx = pd.Index(["X 123", "Y 999"])
idx.str.partition()

 

2.4.2 split函數(shù)

split函數(shù)會按照分隔符拆分為多個值。
參數(shù):
pat(分隔符,默認為空格);
n(限制分隔的輸出,即查找?guī)讉€分隔符,默認-1,表示全部);
expend(是否生成dataframe,默認為False)。

s = pd.Series(["this is a regular sentence","https://docs.python.org/3/tutorial/index.html",np.nan])
#1.默認按照空格進行拆分
s.str.split()
#2.按照空格進行拆分,并限制2個分隔符的輸出
s.str.split(n=2)
#3.以指定符號拆分,并生成新的dataframe
s.str.split(pat = "/",expend=True)
#4.使用正則表達式來進行拆分,并生成新的dataframe
s = pd.Series(["1+1=2"])
s.str.split(r"+|=", expand=True)

 

2.4.3 rsplit函數(shù)

如果不設置n的值,rsplit和split效果是相同的。區(qū)別是,split是從開始進行限制,rsplit是從末尾進行限制。

s = pd.Series(["this is a regular sentence","https://docs.python.org/3/tutorial/index.html",np.nan])
#區(qū)別于split
s.str.rsplit(n=2)

 

3.字符串統(tǒng)計

 

 3.1 統(tǒng)計某列字符串中包含某個字符串的個數(shù)

s = pd.Series(["dog", "", 5,{"foo" : "bar"},[2, 3, 5, 7],("one", "two", "three")])
s.str.len()

 

3.2 統(tǒng)計字符串長度

s = pd.Series(["dog", "", 5,{"foo" : "bar"},[2, 3, 5, 7],("one", "two", "three")])
s.str.len()

效果圖如下:

pandas中對文本類型數(shù)據(jù)的處理小結(jié)

 

4.字符串內(nèi)容查找(包含正則)

 

 4.1 extract

可通過正則表達式來提取指定內(nèi)容,小括號內(nèi)的會生成一列

s = pd.Series(["a1", "b2", "c3"])
#按照小括號內(nèi)的進行提取,生成兩列
s.str.extract(r"([ab])(d)")
#加上問號后,如果有一個匹配不上,還可以繼續(xù)匹配
s.str.extract(r"([ab])?(d)")
#可以對生成的新列進行重命名
s.str.extract(r"(?P<letter>[ab])(?P<digit>d)")
#生成1列
s.str.extract(r"[ab](d)", expand=True)

 

4.2 extractall

區(qū)別于extract,該函數(shù)可以提取所有符合條件的元素

s = pd.Series(["a1a2", "b1", "c1"], index=["A", "B", "C"])
#提取所有符合條件的數(shù)字,結(jié)果為多重索引1列
s.str.extractall(r"[ab](d)")
#提取符合條件的數(shù)字,并重命名,結(jié)果為多重索引1列
s.str.extractall(r"[ab](?P<digit>d)")
#提取符合條件的a、b和數(shù)字,結(jié)果為多重索引多列
s.str.extractall(r"(?P<letter>[ab])(?P<digit>d)")
#提取符合條件的a、b和數(shù)字,添加問號后,一個匹配不上可以繼續(xù)向后匹配,結(jié)果為多重索引多列
s.str.extractall(r"(?P<letter>[ab])?(?P<digit>d)")

 

4.3 find

查詢固定字符串在目標字符串中的最小索引。
若需要查詢的字符串未出現(xiàn)在目標字符串中,則顯示為-1

s = pd.Series(["appoint", "price", "sleep","amount"])
s.str.find("p")

顯示結(jié)果如下:

pandas中對文本類型數(shù)據(jù)的處理小結(jié)

 

4.4 rfind

查詢固定字符串在目標字符串中的最大索引。
若需要查詢的字符串未出現(xiàn)在目標字符串中,則顯示為-1。

s = pd.Series(["appoint", "price", "sleep","amount"])
s.str.rfind("p",start=1)

查詢結(jié)果如下:

pandas中對文本類型數(shù)據(jù)的處理小結(jié)

 

4.5 findall

查找系列/索引中所有出現(xiàn)的模式或正則表達式

s = pd.Series(["appoint", "price", "sleep","amount"])
s.str.findall(r"[ac]")

顯示結(jié)果如下:

pandas中對文本類型數(shù)據(jù)的處理小結(jié)

 

4.6 get

從列表、元組或字符串中的每個元素中提取元素的系列/索引。

s = pd.Series(["String",
               (1, 2, 3),
               ["a", "b", "c"],
               123,
               -456,
               {1: "Hello", "2": "World"}])
s.str.get(1)

效果如下圖:

pandas中對文本類型數(shù)據(jù)的處理小結(jié)

 

4.7 match

確定每個字符串是否與參數(shù)中的正則表達式匹配。

s = pd.Series(["appoint", "price", "sleep","amount"])
s.str.match("^[ap].*t")

匹配效果圖如下:

pandas中對文本類型數(shù)據(jù)的處理小結(jié)

 

5.字符串邏輯判斷

 

5.1 contains函數(shù)

測試模式或正則表達式是否包含在系列或索引的字符串中。
參數(shù):
pat,字符串或正則表達式;
case,是否區(qū)分大小寫,默認為True,即區(qū)分大小寫;
flags,是否傳遞到re模塊,默認為0;
na,對缺失值的處理方法,默認為nan;
regex,是否將pat參數(shù)當作正則表達式來處理,默認為True。

s = pd.Series(["APpoint", "Price", "cap","approve",123])
s.str.contains("ap",case=True,na=False,regex=False)

效果圖如下:

pandas中對文本類型數(shù)據(jù)的處理小結(jié)

 

5.2 endswith函數(shù)

測試每個字符串元素的結(jié)尾是否與字符串匹配。

s = pd.Series(["APpoint", "Price", "cap","approve",123])
s.str.endswith("e")

匹配結(jié)果如下:

pandas中對文本類型數(shù)據(jù)的處理小結(jié)

處理nan值

s = pd.Series(["APpoint", "Price", "cap","approve",123])
s.str.endswith("e",na=False)

效果如下:

pandas中對文本類型數(shù)據(jù)的處理小結(jié)

 

5.3 startswith函數(shù)

測試每個字符串元素的開頭是否與字符串匹配。

s = pd.Series(["APpoint", "Price", "cap","approve",123])
s.str.startswith("a",na=False)

匹配如下:

pandas中對文本類型數(shù)據(jù)的處理小結(jié)

 

5.4 isalnum函數(shù)

檢查每個字符串中的所有字符是否都是字母數(shù)字。

s1 = pd.Series(["one", "one1", "1", ""])
s1.str.isalnum()

效果如下:

pandas中對文本類型數(shù)據(jù)的處理小結(jié)

 

5.5 isalpha函數(shù)

檢查每個字符串中的所有字符是否都是字母。

s1 = pd.Series(["one", "one1", "1", ""])
s1.str.isalpha()

效果如下:

pandas中對文本類型數(shù)據(jù)的處理小結(jié)

 

5.6 isdecimal函數(shù)

檢查每個字符串中的所有字符是否都是十進制的。

s1 = pd.Series(["one", "one1", "1",""])
s1.str.isdecimal()

效果如下:

pandas中對文本類型數(shù)據(jù)的處理小結(jié)

 

5.7 isdigit函數(shù)

檢查每個字符串中的所有字符是否都是數(shù)字。

s1 = pd.Series(["one", "one1", "1",""])
s1.str.isdigit()

效果如下:

pandas中對文本類型數(shù)據(jù)的處理小結(jié)

 

5.8 islower函數(shù)

檢查每個字符串中的所有字符是否都是小寫。

s1 = pd.Series(["one", "one1", "1",""])
s1.str.islower()

效果如下:

pandas中對文本類型數(shù)據(jù)的處理小結(jié)

 

5.9 isnumeric函數(shù)

檢查每個字符串中的所有字符是否都是數(shù)字。

s1 = pd.Series(["one", "one1", "1","","3.6"])
s1.str.isnumeric()

效果如下:

pandas中對文本類型數(shù)據(jù)的處理小結(jié)

 

5.10 isspace函數(shù)

檢查每個字符串中的所有字符是否都是空格。

s1 = pd.Series([" one", "	
","1", ""," "])
s1.str.isspace()

效果如下:

pandas中對文本類型數(shù)據(jù)的處理小結(jié)

 

5.11 istitle函數(shù)

檢查每個字符串中的所有字符是否都是標題形式的大小寫。

s1 = pd.Series(["leopard", "Golden Eagle", "SNAKE", ""])
s1.str.istitle()

效果如下:

pandas中對文本類型數(shù)據(jù)的處理小結(jié)

 

5.12 isupper函數(shù)

檢查每個字符串中的所有字符是否都是大寫。

s1 = pd.Series(["leopard", "Golden Eagle", "SNAKE", ""])
s1.str.isupper()

效果如下:

pandas中對文本類型數(shù)據(jù)的處理小結(jié)

 

5.13 get_dummies函數(shù)

按 sep 拆分系列中的每個字符串并返回一個 虛擬/指標變量的dataframe。

s1 = pd.Series(["leopard", "Golden Eagle", "SNAKE", ""])
s1.str.get_dummies()

效果如下:

pandas中對文本類型數(shù)據(jù)的處理小結(jié)

該函數(shù)還可以進行此類匹配,注意輸入的形式

s1=pd.Series(["a|b", np.nan, "a|c"])
s1.str.get_dummies()

效果如下:

pandas中對文本類型數(shù)據(jù)的處理小結(jié)

 

6.其他

 

6.1 strip

刪除前導和尾隨字符。

s1 = pd.Series(["1. Ant.  ", "2. Bee!
", "3. Cat?	", np.nan])
s1.str.strip()

效果如下:

pandas中對文本類型數(shù)據(jù)的處理小結(jié)

 

6.2 lstrip

刪除系列/索引中的前導字符。

 

6.3 rstrip

刪除系列/索引中的尾隨字符。

到此這篇關于pandas中對于文本類型數(shù)據(jù)的處理匯總的文章就介紹到這了,更多相關pandas文本類型數(shù)據(jù)處理內(nèi)容請搜索服務器之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.csdn.net/qq_41780234/article/details/120727900

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久久久久免费 | 中文字幕免费看 | 亚洲精品欧美二区三区中文字幕 | 国产一级一区二区三区 | 999久久久久久 | 91精品国产综合久久婷婷香 | 欧美日韩在线视频一区二区 | 成人视屏免费看 | 久久手机在线视频 | 国产亚洲精品久久久久久网站 | 国产精品久久久久影院老司 | 欧美成人免费电影 | 国产视频在线观看一区二区三区 | 一级做a爱片久久 | 精品一区二区久久久 | 播色网 | 欧美色淫 | 一级成人欧美一区在线观看 | 国产理论视频在线观看 | 国产精品www | 精品国产视频一区二区三区 | 国产精品v片在线观看不卡 成人一区二区三区在线 | 激情视频日韩 | 国产成人高清在线 | 在线播放免费av | 久久久激情网 | 国产二区三区在线播放 | 国产papa| 国产69精品久久久久久野外 | 91丨九色丨国产在线观看 | 九九热精品在线 | 欧美一级理论 | 91在线免费观看 | h色网站在线观看 | 久色porn| 国产精品欧美久久久久一区二区 | 成年人免费高清视频 | 水卜樱一区二区av | 欧美h版电影在线观看 | 毛片免费一区二区三区 | 毛片a片 |