溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

pandas怎么將表中的字符串轉成數值型

發(fā)布時間:2023-02-22 15:04:18 來源:億速云 閱讀:146 作者:iii 欄目:開發(fā)技術

今天小編給大家分享一下pandas怎么將表中的字符串轉成數值型的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

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)

擴展:pandas 把某一列中字符串變數值_Pandas對文本數據處理

在處理數據的時候,對數值型的數據處理還是比較方便的,但是有時候數值型數據出現問題后就會比較頭痛了,因為文本數據的排列組合可是有很多很多的,今天我們就學習一下如何對文本數據進行處理,這樣我們接下來在工作中遇到了這些情況就可以少掉一下頭發(fā)啦。

pandas怎么將表中的字符串轉成數值型

一、str屬性

文本數據也就是我們常說的字符串,pandas為series提供了str屬性,通過它可以方便對每個元素進行操作。

pandas怎么將表中的字符串轉成數值型

為了防止數據被弄壞,我們先預留一個備份以防萬一。

pandas怎么將表中的字符串轉成數值型

這里我們是不能使用backup_user_info = user_info的因為這樣的話一個更改另外一個也會更改。

在之前我們也已經了解過,在對series中每個元素處理時,我們可以使用map或apply方法,比如我們想把星球列下面的地球和外星轉換為英文,可以使用下面的方式。

pandas怎么將表中的字符串轉成數值型

這時候我們在將表恢復成原來的樣子。

pandas怎么將表中的字符串轉成數值型

將哪個星球列下的星球改為大寫的英文后再改為小寫

首先更改為英文

pandas怎么將表中的字符串轉成數值型

然后設置一個函數,將星球改為大寫,原理為upper()方法

pandas怎么將表中的字符串轉成數值型

然后在設置為小寫,原理為lower方法

pandas怎么將表中的字符串轉成數值型

給英雄們的身高加上一個單位

pandas怎么將表中的字符串轉成數值型

我們通過str屬性來訪問之后用到的方法名與 Python 內置的字符串的方法名一樣。并且能夠自動排除缺失值。 我們再來試試其他一些方法。例如,統計每個字符串的長度。

pandas怎么將表中的字符串轉成數值型

將cm替換成空白的字符串

pandas怎么將表中的字符串轉成數值型

將身高列的元素類型轉換為整數型

pandas怎么將表中的字符串轉成數值型

生成一個新的列,列名為姓名的長度,元素為英雄姓名的長度(len方法)

pandas怎么將表中的字符串轉成數值型

查看表的元素類型

pandas怎么將表中的字符串轉成數值型

將年不年輕列的中的中年屬性更改為中老年屬性

pandas怎么將表中的字符串轉成數值型

查看城市列中每個元素有幾個字

pandas怎么將表中的字符串轉成數值型

查看年不年輕列中每個元素是否有輕這個字符串

pandas怎么將表中的字符串轉成數值型

二、替換和分隔

使用.srt屬性也支持替換與分割操作。先來看下替換操作,例如:將大寫的R轉換為小寫的r。

pandas怎么將表中的字符串轉成數值型

將列中的數據進行分隔

pandas怎么將表中的字符串轉成數值型

將是否年輕按年進行分隔,結果如上所述。

分割列表中的元素可以使用 get 或 [] 符號進行訪問:

pandas怎么將表中的字符串轉成數值型

比如說電影的主演有很多人, 可能是用逗號, 或者/ 進行分割, 這是可以用這種方法轉換成列表

在表中添加一列英雄的愛人列

pandas怎么將表中的字符串轉成數值型

將愛人列以,號分隔

pandas怎么將表中的字符串轉成數值型

這時候就可以讓某一行的這個元素以列表表現出來。

pandas怎么將表中的字符串轉成數值型

將索引列改為英雄姓名,并查看蜘蛛俠和滅霸的愛人

pandas怎么將表中的字符串轉成數值型

三、提取子串

既然是在操作字符串,很自然的大家可能會想到是否可以從一個長的字符串中提取出子串。答案是可以的。

1、提取第一個匹配的子串

extract方法接受一個正則表達式并至少包含一個捕獲組,指定參數 expand=True可以保證每次都返回DataFrame。例如,現在想要匹配空字符串前面的所有的字母,可以使用如下操作:

查看哪位英雄的所在的星球包括E這個字符串

pandas怎么將表中的字符串轉成數值型

查看哪位英雄所在的城市包括紐這個字符串

pandas怎么將表中的字符串轉成數值型

四、生成啞變量

首先我們先了解一下什么是啞變量:

啞變量原名為虛擬變量 ( Dummy Variables) 又稱虛設變量、名義變量或啞,用以反映質的屬性的一個人工變量,是量化了的自變量,通常取值為0或1。引入啞變量可使線形回歸模型變得更復雜,但對問題描述更簡明,一個方程能達到兩個方程的作用,而且接近現實。

在pandas中我們可以通過get_dummies 方法可以將字符串轉為啞變量,sep 參數是指定啞變量之間的分隔符。

pandas怎么將表中的字符串轉成數值型

對英雄姓名進行啞變量轉換

pandas怎么將表中的字符串轉成數值型

從結果可以看出,第0行的英雄姓名是蜘蛛俠,第1行的英雄姓名是滅霸,啞變量轉換就是將每一個選擇匹配哪一行的數據。

對那個星球進行啞變量轉換

pandas怎么將表中的字符串轉成數值型

從結果可以看出,在地球的英雄是第0、2、3、4、6行的,對應的英雄名稱為(蜘蛛俠、奇異博士、鋼鐵俠、蝙蝠俠、黑寡婦)

以上就是“pandas怎么將表中的字符串轉成數值型”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI