您好,登錄后才能下訂單哦!
今天小編給大家分享一下pandas怎么將表中的字符串轉成數值型的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
在用pd.read_csv讀數據時,將要轉換數據類型的列名和類型名構成字典,傳給dtype
import numpy as np import pandas as pd path = 'house_data.csv' col = ['CRIM', 'ZN', 'INDUS', 'CHAS', 'NOX', 'RM', 'AGE', 'DIS', 'RAD', 'TAX', 'PTRATIO', 'B', 'LSTAT', 'MEDV'] dict_dtype = {} for i in col: dict_dtype[i] = np.float64 # print(dict_dtype) data = pd.read_csv(path, header=None, names=col, sep=',', dtype=dict_dtype)
在處理數據的時候,對數值型的數據處理還是比較方便的,但是有時候數值型數據出現問題后就會比較頭痛了,因為文本數據的排列組合可是有很多很多的,今天我們就學習一下如何對文本數據進行處理,這樣我們接下來在工作中遇到了這些情況就可以少掉一下頭發(fā)啦。
文本數據也就是我們常說的字符串,pandas為series提供了str屬性,通過它可以方便對每個元素進行操作。
為了防止數據被弄壞,我們先預留一個備份以防萬一。
這里我們是不能使用backup_user_info = user_info的因為這樣的話一個更改另外一個也會更改。
在之前我們也已經了解過,在對series中每個元素處理時,我們可以使用map或apply方法,比如我們想把星球列下面的地球和外星轉換為英文,可以使用下面的方式。
這時候我們在將表恢復成原來的樣子。
將哪個星球列下的星球改為大寫的英文后再改為小寫
首先更改為英文
然后設置一個函數,將星球改為大寫,原理為upper()方法
然后在設置為小寫,原理為lower方法
給英雄們的身高加上一個單位
我們通過str屬性來訪問之后用到的方法名與 Python 內置的字符串的方法名一樣。并且能夠自動排除缺失值。 我們再來試試其他一些方法。例如,統計每個字符串的長度。
將cm替換成空白的字符串
將身高列的元素類型轉換為整數型
生成一個新的列,列名為姓名的長度,元素為英雄姓名的長度(len方法)
查看表的元素類型
將年不年輕列的中的中年屬性更改為中老年屬性
查看城市列中每個元素有幾個字
查看年不年輕列中每個元素是否有輕這個字符串
使用.srt屬性也支持替換與分割操作。先來看下替換操作,例如:將大寫的R轉換為小寫的r。
將列中的數據進行分隔
將是否年輕按年進行分隔,結果如上所述。
分割列表中的元素可以使用 get 或 [] 符號進行訪問:
比如說電影的主演有很多人, 可能是用逗號, 或者/ 進行分割, 這是可以用這種方法轉換成列表
在表中添加一列英雄的愛人列
將愛人列以,號分隔
這時候就可以讓某一行的這個元素以列表表現出來。
將索引列改為英雄姓名,并查看蜘蛛俠和滅霸的愛人
既然是在操作字符串,很自然的大家可能會想到是否可以從一個長的字符串中提取出子串。答案是可以的。
extract方法接受一個正則表達式并至少包含一個捕獲組,指定參數 expand=True可以保證每次都返回DataFrame。例如,現在想要匹配空字符串前面的所有的字母,可以使用如下操作:
查看哪位英雄的所在的星球包括E這個字符串
查看哪位英雄所在的城市包括紐這個字符串
首先我們先了解一下什么是啞變量:
啞變量原名為虛擬變量 ( Dummy Variables) 又稱虛設變量、名義變量或啞,用以反映質的屬性的一個人工變量,是量化了的自變量,通常取值為0或1。引入啞變量可使線形回歸模型變得更復雜,但對問題描述更簡明,一個方程能達到兩個方程的作用,而且接近現實。
在pandas中我們可以通過get_dummies 方法可以將字符串轉為啞變量,sep 參數是指定啞變量之間的分隔符。
對英雄姓名進行啞變量轉換
從結果可以看出,第0行的英雄姓名是蜘蛛俠,第1行的英雄姓名是滅霸,啞變量轉換就是將每一個選擇匹配哪一行的數據。
對那個星球進行啞變量轉換
從結果可以看出,在地球的英雄是第0、2、3、4、6行的,對應的英雄名稱為(蜘蛛俠、奇異博士、鋼鐵俠、蝙蝠俠、黑寡婦)
以上就是“pandas怎么將表中的字符串轉成數值型”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業(yè)資訊頻道。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。