字符串處理只能在Series上進(jìn)行,不可以在DataFrame上操作,只能對(duì)字符串進(jìn)行處理,不能對(duì)整數(shù)、日期進(jìn)行處理
1. 元素統(tǒng)計(jì)
1.1 str.count()
1.1.1 函數(shù)功能
統(tǒng)計(jì)Series中每個(gè)元素中包含pat的次數(shù)
1.1.2 函數(shù)語(yǔ)法
Series.str.count(pat, flags=0)
1.1.3 函數(shù)參數(shù)
參數(shù) | 含義 |
---|---|
pat | 表達(dá)式 |
order = pd.read_excel('C:\\Users\\changyanhua\\Desktop\\order.xlsx')
print(order)
print(order['訂單編號(hào)'].str.count(pat='0'))
1.2 str.len()
1.2.1 函數(shù)功能
統(tǒng)計(jì)Series中每個(gè)元素的長(zhǎng)度
1.2.2 函數(shù)語(yǔ)法
Series.str.len()
print(order['支付方式'].str.len())
2. 字符串內(nèi)容判斷
2.1 str.contains()
2.1.1 函數(shù)功能
檢測(cè)Series或Index的每個(gè)元素中是否包含指定內(nèi)容,返回結(jié)果為布爾值構(gòu)成的Series或Index
2.1.2 函數(shù)語(yǔ)法
Series.str.contains(pat, case=True, flags=0, na=None, regex=True)
2.1.3 函數(shù)參數(shù)
參數(shù) | 含義 |
---|---|
pat | 要查找的內(nèi)容 |
case | 布爾值,是否區(qū)分大小寫,默認(rèn)True:區(qū)分 |
flags | 整數(shù),默認(rèn)值為0 |
na | 標(biāo)量,可選參數(shù),對(duì)缺失值進(jìn)行填充 |
regex | 布爾值,默認(rèn)值為True:以正則表達(dá)式看待pat中的內(nèi)容,否則以普通字符串看待 |
order = pd.read_excel('C:\\Users\\changyanhua\\Desktop\\order.xlsx')
print(order)
print(order['所屬行業(yè)'].str.contains('計(jì)算機(jī)'))
對(duì)缺失值以“unknown"填充
print(order['所屬行業(yè)'].str.contains('計(jì)算機(jī)',na='unknown'))
2.2 str.endswith()
2.2.1 函數(shù)功能
檢測(cè)Series中的每個(gè)元素或索引是否以指定內(nèi)容結(jié)尾,返回值為布爾值組成的Series或者Index
2.2.2 函數(shù)語(yǔ)法
Series.str.endswith(pat, na=None)
2.2.3 函數(shù)參數(shù)
參數(shù) | 含義 |
---|---|
pat | 查找內(nèi)容,可以是字符串或者字符串組成的元組,不接收正則表達(dá)式 |
na | 缺失值返回內(nèi)容,默認(rèn)NaN |
print(order['公司規(guī)模'].str.endswith('500人'))
包含空字符串時(shí),認(rèn)為空字符串中不包含指定內(nèi)容,設(shè)置na=False
order.loc[4,'公司規(guī)模']=np.nan
print(order)
print(order['公司規(guī)模'].str.endswith('500人',na=False))
2.3 startswith()
2.3.1 函數(shù)功能
檢測(cè)Series中的每個(gè)元素或索引是否以指定內(nèi)容開(kāi)始,返回值為布爾值組成的Series或者Index
2.3.2 函數(shù)語(yǔ)法
Series.str.startswith(pat, na=None)
2.3.3 函數(shù)參數(shù)
參數(shù) | 含義 |
---|---|
pat | 查找內(nèi)容,可以是字符串或者字符串組成的元組,不接收正則表達(dá)式 |
na | 缺失值返回內(nèi)容,默認(rèn)NaN |
2.4 str.match()
2.3.1 函數(shù)功能
檢測(cè)Series中的每個(gè)元素或索引是否以指定內(nèi)容開(kāi)始,返回值為布爾值組成的Series或者Index
2.3.2 函數(shù)語(yǔ)法
Series.str.match(pat, na=None)
2.3.3 函數(shù)參數(shù)
參數(shù) | 含義 |
---|---|
pat | 要查找的內(nèi)容,格式為正則表達(dá)式 |
case | 布爾值,是否區(qū)分大小寫,默認(rèn)True:區(qū)分 |
flags | 整數(shù),默認(rèn)值為0 |
na | 標(biāo)量,可選參數(shù),對(duì)缺失值進(jìn)行填充 |
str.startwith()與str.match()都可以檢測(cè)Serie或者Series的Index是否以指定內(nèi)容開(kāi)始,凡是str.match()支持正則表達(dá)式,適用范圍更廣。
3.字符串替換
3.1 str.replace()
3.1.1 函數(shù)功能
替換指定內(nèi)容
3.1.2 函數(shù)語(yǔ)法
Series.str.replace(pat, repl, n=- 1, case=None, flags=0, regex=False)
3.1.3 函數(shù)參數(shù)
參數(shù) | 含義 |
---|---|
pat | 要查找的內(nèi)容,字符串或正則表達(dá)式 |
repl | 要替換為的字符串或可迭代對(duì)象 |
n | 整數(shù),進(jìn)行替換操作的數(shù)量,默認(rèn)為-1:替換所有 |
case | 布爾值,是否區(qū)分大小寫,默認(rèn)True:區(qū)分 |
flags | 整數(shù),默認(rèn)值為0 |
regex | 布爾值,傳入的pat是否是正則表達(dá)式,默認(rèn)取值為False:不是正則表達(dá)式 |
order = pd.read_excel('C:\\Users\\changyanhua\\Desktop\\order.xlsx')
print(order.head())
print(order['獲取日期'].str.replace('-', ''))
# 將\d+視為正則表達(dá)式而不是普通字符
print(order['職位id'].astype(str).str.replace('\d+', '職位', regex='True'))
4. 字符串拼接
4.1 str.join()
4.1.1 函數(shù)功能
將Series或Index中的每個(gè)元素通過(guò)指定符號(hào)連接起來(lái),當(dāng)元素中有非字符串對(duì)象時(shí),最終結(jié)果將為NaN
4.1.2 函數(shù)語(yǔ)法
Series.str.join(sep)[source]
4.1.3 函數(shù)參數(shù)
參數(shù) | 含義 |
---|---|
sep | 連接符號(hào) |
order = pd.read_excel('C:\\Users\\changyanhua\\Desktop\\order.xlsx')
print(order.head())
print(order['學(xué)歷要求'].str.join('*'))
4.2 str.cat()
4.2.1 函數(shù)功能
用指定的分隔符連接Series或者Index中的元素。當(dāng)指定others,將Series或者Index與others中的元素連接;否則將Series或者Index中的元素連接為一個(gè)字符串。
4.2.2 函數(shù)語(yǔ)法
Series.str.cat(others=None, sep=None, na_rep=None, join='left')
4.2.3 函數(shù)參數(shù)
參數(shù) | 含義 |
---|---|
others | 取值為Series、Index、DataFrane、np.array或者list-like |
sep | 字符串,默認(rèn)為:‘’:空字符串 |
na_rep | 字符串或者None,默認(rèn)為None,對(duì)缺失值的處理:當(dāng)na_rep為None且當(dāng)others沒(méi)有時(shí),連接結(jié)果將會(huì)忽略缺失值;如果na_rep為None,但是others有值,結(jié)果中將保留缺失值 |
join | 決定Series或Index與others之間的連接方式,默認(rèn)為left:左連接 |
others為None,將Series中的元素連接為一個(gè)字符串
order = pd.read_excel('C:\\Users\\changyanhua\\Desktop\\order.xlsx')
print(order.head())
print(order['學(xué)歷要求'].str.cat(sep='*'))
others存在,將Series與others中的值對(duì)應(yīng)連接
print(order['學(xué)歷要求'].str.cat(others=order['公司規(guī)模'], sep='*'))
有others參數(shù)
print(order['學(xué)歷要求'].str.cat(others=['學(xué)生']*len(order),sep='*'))
order:
5. 字符串查找:返回索引
5.1 str.find()
5.1 函數(shù)功能
查找指定字符串,返回第一次出現(xiàn)的索引,沒(méi)有找到則返回-1
5.2 函數(shù)語(yǔ)法
Series.str.find(sub, start=0, end=None)
5.3 函數(shù)參數(shù)
參數(shù) | 含義 |
---|---|
sub | 要查找的字符串 |
start | 開(kāi)始查找的位置 |
end | 結(jié)束查找的位置 |
order = pd.read_excel('C:\\Users\\changyanhua\\Desktop\\order.xlsx')
print(order)
print([order['職位名稱'].str.find('開(kāi)發(fā)')])
print([order['職位名稱'].str.find('開(kāi)發(fā)',start=5)])
5.2 str.findall()
5.2.1 函數(shù)功能
返回子字符串的列表
5.2.2 函數(shù)語(yǔ)法
Series.str.findall(pat, flags=0)
5.2.3 函數(shù)參數(shù)
參數(shù) | 含義 |
---|---|
pat | 要匹配的字符串或正則表達(dá)式 |
flags | 正則表達(dá)式標(biāo)志 |
print([order['職位名稱'].str.findall('開(kāi)發(fā)工程師')])
6. 指定字符串刪除
6.1 str.strip()
6.1.1 函數(shù)功能
刪除Series中每個(gè)字符串兩邊的空格(\t)和換行符(\n),也可以指定刪除的字符串文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-531163.html
6.1.2 函數(shù)語(yǔ)法
Series.str.strip(to_strip=None)
6.1.3 函數(shù)參數(shù)
參數(shù) | 含義 |
---|---|
to_strip | 指定要去掉的字符串集合,集合中的所有字符串組成的集合都將被去除 |
order = pd.read_excel('C:\\Users\\changyanhua\\Desktop\\stp.xlsx')
print(order)
print([order['dishes_name'].str.strip()])
類似的還有str.lstrip():刪除左邊的指定字符;str.rstrip():刪除右邊的指定字符文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-531163.html
到了這里,關(guān)于常用字符串處理方法匯總--Pandas的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!