chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

分享pandas中超級好用的str矢量化字符串函數(shù)

數(shù)據(jù)分析與開發(fā) ? 來源:數(shù)據(jù)分析與統(tǒng)計學(xué)之美 ? 作者:黃偉呢 ? 2021-04-13 10:37 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文介紹

你有沒有這樣一種感覺,為什么到自己手上的數(shù)據(jù),總是亂七八糟? 作為一個數(shù)據(jù)分析師來說,數(shù)據(jù)清洗是必不可少的環(huán)節(jié)。有時候由于數(shù)據(jù)太亂,往往需要花費我們很多時間去處理它。因此掌握更多的數(shù)據(jù)清洗方法,會讓你的能力調(diào)高100倍。 本文基于此,講述pandas中超級好用的str矢量化字符串函數(shù),學(xué)了之后,瞬間感覺自己的數(shù)據(jù)清洗能力提高了。

1個數(shù)據(jù)集,16個Pandas函數(shù)

數(shù)據(jù)集是黃同學(xué)精心為大家編造,只為了幫助大家學(xué)習(xí)到知識。數(shù)據(jù)集如下:

importpandasaspd df={'姓名':['黃同學(xué)','黃至尊','黃老邪','陳大美','孫尚香'], '英文名':['Huangtong_xue','huangzhi_zun','HuangLao_xie','ChenDa_mei','sunshang_xiang'], '性別':['男','women','men','女','男'], '身份證':['463895200003128433','429475199912122345','420934199110102311','431085200005230122','420953199509082345'], '身高':['mid:175_good','low:165_bad','low:159_bad','high:180_verygood','low:172_bad'], '家庭住址':['湖北廣水','河南信陽','廣西桂林','湖北孝感','廣東廣州'], '電話號碼':['13434813546','19748672895','16728613064','14561586431','19384683910'], '收入':['1.1萬','8.5千','0.9萬','6.5千','2.0萬']} df=pd.DataFrame(df) df 結(jié)果如下:

bcebfca8-9be2-11eb-8b86-12bb97331649.png

觀察上述數(shù)據(jù),數(shù)據(jù)集是亂的。接下來,我們就用16個Pandas來對上述數(shù)據(jù),進行數(shù)據(jù)清洗。

① cat函數(shù):用于字符串的拼接

df["姓名"].str.cat(df["家庭住址"],sep='-'*3) 結(jié)果如下:

bd027afa-9be2-11eb-8b86-12bb97331649.png

② contains:判斷某個字符串是否包含給定字符

df["家庭住址"].str.contains("廣") 結(jié)果如下:

bd0e3d40-9be2-11eb-8b86-12bb97331649.png

③ startswith/endswith:判斷某個字符串是否以…開頭/結(jié)尾

#第一個行的“黃偉”是以空格開頭的 df["姓名"].str.startswith("黃") df["英文名"].str.endswith("e") 結(jié)果如下:

bd1e5ba8-9be2-11eb-8b86-12bb97331649.png

④ count:計算給定字符在字符串中出現(xiàn)的次數(shù)

df["電話號碼"].str.count("3") 結(jié)果如下:

bd2bac22-9be2-11eb-8b86-12bb97331649.png

⑤ get:獲取指定位置的字符串

df["姓名"].str.get(-1) df["身高"].str.split(":") df["身高"].str.split(":").str.get(0) 結(jié)果如下:

bd3eebde-9be2-11eb-8b86-12bb97331649.png

⑥ len:計算字符串長度

df["性別"].str.len() 結(jié)果如下:

bd502714-9be2-11eb-8b86-12bb97331649.png

⑦ upper/lower:英文大小寫轉(zhuǎn)換

df["英文名"].str.upper() df["英文名"].str.lower() 結(jié)果如下:

bd5d8d82-9be2-11eb-8b86-12bb97331649.png

⑧ pad+side參數(shù)/center:在字符串的左邊、右邊或左右兩邊添加給定字符

df["家庭住址"].str.pad(10,fillchar="*")#相當于ljust() df["家庭住址"].str.pad(10,side="right",fillchar="*")#相當于rjust() df["家庭住址"].str.center(10,fillchar="*") 結(jié)果如下:

bd691940-9be2-11eb-8b86-12bb97331649.png

⑨ repeat:重復(fù)字符串幾次

df["性別"].str.repeat(3) 結(jié)果如下:

bd73b710-9be2-11eb-8b86-12bb97331649.png

⑩ slice_replace:使用給定的字符串,替換指定的位置的字符

df["電話號碼"].str.slice_replace(4,8,"*"*4) 結(jié)果如下:

bd814ac4-9be2-11eb-8b86-12bb97331649.png

? replace:將指定位置的字符,替換為給定的字符串

df["身高"].str.replace(":","-") 結(jié)果如下:

? replace:將指定位置的字符,替換為給定的字符串(接受正則表達式)

replace中傳入正則表達式,才叫好用;

先不要管下面這個案例有沒有用,你只需要知道,使用正則做數(shù)據(jù)清洗多好用;

df["收入"].str.replace("d+.d+","正則") 結(jié)果如下:

bd9fe4de-9be2-11eb-8b86-12bb97331649.png

? split方法+expand參數(shù):搭配join方法功能很強大

#普通用法 df["身高"].str.split(":") #split方法,搭配expand參數(shù) df[["身高描述","final身高"]]=df["身高"].str.split(":",expand=True) df #split方法搭配join方法 df["身高"].str.split(":").str.join("?"*5) 結(jié)果如下:

bdacbbb4-9be2-11eb-8b86-12bb97331649.png

? strip/rstrip/lstrip:去除空白符、換行符

df["姓名"].str.len() df["姓名"]=df["姓名"].str.strip() df["姓名"].str.len() 結(jié)果如下:

bde4a2ea-9be2-11eb-8b86-12bb97331649.png

? findall:利用正則表達式,去字符串中匹配,返回查找結(jié)果的列表

findall使用正則表達式,做數(shù)據(jù)清洗,真的很香!

df["身高"] df["身高"].str.findall("[a-zA-Z]+") 結(jié)果如下:

bdf09636-9be2-11eb-8b86-12bb97331649.png

? extract/extractall:接受正則表達式,抽取匹配的字符串(一定要加上括號)

df["身高"].str.extract("([a-zA-Z]+)") #extractall提取得到復(fù)合索引 df["身高"].str.extractall("([a-zA-Z]+)") #extract搭配expand參數(shù) df["身高"].str.extract("([a-zA-Z]+).*?([a-zA-Z]+)",expand=True) 結(jié)果如下:

be02c400-9be2-11eb-8b86-12bb97331649.png

今天的文章,就講述到這里,希望能夠?qū)δ阌兴鶐椭?/p>

編輯:jq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    7292

    瀏覽量

    93391
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4400

    瀏覽量

    66369
  • 矢量化
    +關(guān)注

    關(guān)注

    0

    文章

    5

    瀏覽量

    6303

原文標題:詳解16個 pandas 函數(shù),讓你的 “數(shù)據(jù)清洗” 能力提高100倍!

文章出處:【微信號:DBDevs,微信公眾號:數(shù)據(jù)分析與開發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    labview如何生成一個帶字符串返回的dll

    labview如何生成一個dll,如下圖,要求一個輸入,類型是字符串,返回類型也是字符串
    發(fā)表于 08-28 23:20

    在Python字符串逆序有幾種方式,代碼是什么

    對于一個給定的字符串,逆序輸出,這個任務(wù)對于python來說是一種很簡單的操作,畢竟強大的列表和字符串處理的一些列函數(shù)足以應(yīng)付這些問題 了,今天總結(jié)了一下python對于
    的頭像 發(fā)表于 08-28 14:44 ?410次閱讀

    harmony-utils之StrUtil,字符串工具類

    harmony-utils之StrUtil,字符串工具類 harmony-utils 簡介與說明 [harmony-utils] 一款功能豐富且極易上手的HarmonyOS工具庫,借助眾多實用工具類
    的頭像 發(fā)表于 07-03 11:32 ?262次閱讀

    itop-3568開發(fā)板驅(qū)動開發(fā)指南-實驗程序的編寫

    、char 類型參數(shù) name、int 類型的數(shù)組 para 和 char類型字符串 str1,并在驅(qū)動入口函數(shù),對各個參數(shù)進行打印。在下一小節(jié)會進行驅(qū)動加載測試。
    發(fā)表于 05-19 10:26

    STM32C031C6使用的是UART2通訊,通過printf()函數(shù)發(fā)送字符串時,漢字錯碼怎么解決?

    使用的是UART2通訊,通過printf()函數(shù)發(fā)送字符串時,漢字錯碼(見下圖),應(yīng)該是KEIL哪里沒有設(shè)置好的問題。 啟用了UART2的中斷接收,可以接收到串口調(diào)試助手的數(shù)據(jù),但是緩存區(qū)的指針沒有歸零,下次接收時緩存區(qū)的內(nèi)
    發(fā)表于 03-07 12:30

    請問如何用Verilog實現(xiàn)將ascaii碼數(shù)值字符串轉(zhuǎn)換成定點數(shù)?

    我需要接收一個ascaii碼字符串,內(nèi)容是12位有效數(shù)字的數(shù)值,帶小數(shù)。我不知道怎么把小數(shù)部分轉(zhuǎn)換成定點數(shù)。
    發(fā)表于 01-23 21:57

    字符串在數(shù)據(jù)庫的存儲方式

    數(shù)據(jù)庫是現(xiàn)代信息技術(shù)存儲和管理數(shù)據(jù)的核心組件。字符串作為最常見的數(shù)據(jù)類型之一,在數(shù)據(jù)庫的存儲方式對其性能和可擴展性有著重要影響。 數(shù)據(jù)類型 固定長度字符串 :如CHAR類型,它為每
    的頭像 發(fā)表于 01-07 15:41 ?1142次閱讀

    字符串在編程的應(yīng)用實例

    字符串在編程中有著廣泛的應(yīng)用,它們被用于表示文本數(shù)據(jù)、處理用戶輸入、構(gòu)建動態(tài)內(nèi)容等。以下是一些字符串在編程的應(yīng)用實例: 1. 用戶輸入與輸出 用戶輸入 :程序通常需要從用戶那里獲取輸入,這些輸入通
    的頭像 發(fā)表于 01-07 15:33 ?944次閱讀

    字符串字符數(shù)組的區(qū)別

    在編程語言中,字符串字符數(shù)組是兩種基本的數(shù)據(jù)結(jié)構(gòu),它們都用于存儲和處理文本數(shù)據(jù)。盡管它們在功能上有一定的重疊,但在內(nèi)部表示、操作方式和使用場景上存在顯著差異。 1. 內(nèi)部表示 字符串 字符串
    的頭像 發(fā)表于 01-07 15:29 ?1510次閱讀

    字符串反轉(zhuǎn)的實現(xiàn)方式

    函數(shù)自身調(diào)用來解決問題的方法。在字符串反轉(zhuǎn),遞歸可以用來逐個字符地構(gòu)建反轉(zhuǎn)后的字符串。 實現(xiàn)步驟 基本情況 :如果
    的頭像 發(fā)表于 01-07 15:27 ?1086次閱讀

    字符串處理方法 字符串轉(zhuǎn)數(shù)字的實現(xiàn)

    轉(zhuǎn)換為浮點數(shù)str_float = "123.45"float_num = float(str_float)print(float_num) # 輸出: 123.45 JavaScript 在JavaScript,可以使用
    的頭像 發(fā)表于 01-07 15:26 ?1230次閱讀

    字符串處理:4G模組軟件指南精要!

    最近一直有朋友咨詢我關(guān)于4G模組的字符串處理,今天我便把相關(guān)指南展示給大家。
    的頭像 發(fā)表于 11-17 09:57 ?738次閱讀
    <b class='flag-5'>字符串</b>處理:4G模組軟件指南精要!

    base64字符串轉(zhuǎn)換為二進制文件

    Base64是一種編碼方法,用于將二進制數(shù)據(jù)轉(zhuǎn)換為ASCII字符串。這種編碼通常用于在不支持二進制數(shù)據(jù)的系統(tǒng)傳輸數(shù)據(jù),例如電子郵件或網(wǎng)頁。將Base64字符串轉(zhuǎn)換為二進制文件的過程相對簡單,但需要
    的頭像 發(fā)表于 11-10 10:55 ?3390次閱讀

    ASCII碼在編程的應(yīng)用實例

    的應(yīng)用實例: 1. 字符串處理 在編程,ASCII碼常用于字符串的處理。例如,可以使用ASCII碼來比較兩個字符的大小關(guān)系,或者通過將字符
    的頭像 發(fā)表于 11-10 09:43 ?1972次閱讀

    labview浮點數(shù)與十六進制字符串相互轉(zhuǎn)化

    與下位機數(shù)據(jù)交流及通訊時,經(jīng)常有浮點數(shù)與十六進制字符串相互轉(zhuǎn)化的需求,經(jīng)過兩天總結(jié),找到了最簡潔的相互轉(zhuǎn)化的方法,萌新歡迎大佬指正,文件也附上。*附件:HEX字符串與浮點數(shù)轉(zhuǎn)換.rar
    發(fā)表于 10-21 19:51