Pandas中根據(jù)條件替換列中的值的四種方式
方法1:使用dataframe.loc[]函數(shù)
通過這個方法,我們可以用一個條件或一個布爾數(shù)組來訪問一組行或列。如果我們可以訪問它,我們也可以操作它的值,是的!這是我們的第一個方法,通過pandas中的dataframe.loc[]函數(shù),我們可以訪問一個列并通過一個條件改變它的值。
語法:df.loc[ df["column_name"] == "some_value", "column_name" ] = "value"
some_value = 需要被替換的值 value = 應(yīng)該被放置的值。
示例: 我們要把性別欄中的所有 “男性 “改為1。
import pandas as pd
import numpy as np
# data
data= {
'Name': ['John', 'Jay', 'sachin', 'Geetha', 'Amutha', 'ganesh'],
'gender': ['male', 'male', 'male', 'female', 'female', 'male'],
'math score': [50, 100, 70, 80, 75, 40],
'test preparation': ['none', 'completed', 'none', 'completed',
'completed', 'none'],
}
# 創(chuàng)建一個 Dataframe 對象
df = pd.DataFrame(data)
# 條件應(yīng)用
df.loc[df["gender"] == "male", "gender"] = 1輸出:

使用dataframe.loc[]函數(shù)
方法2:使用NumPy.where()函數(shù)
NumPy是一個非常流行的庫,用于2D和3D數(shù)組的計算。它為我們提供了一個非常有用的方法where()來訪問有條件的特定行或列。我們也可以用這個函數(shù)來改變某一列的特定值。 語法: df[“column_name”] = np.where(df[“column_name”]==”some_value”, value_if_true, value_if_false)
示例: 這個numpy.where()函數(shù)應(yīng)該寫上條件,如果條件為真,后面是值,如果條件為假,則是一個值?,F(xiàn)在,我們要把性別欄中的所有 “女性 “改為0,”男性 “改為1。
import pandas as pd
import numpy as np
# data
data= {
'Name': ['John', 'Jay', 'sachin', 'Geetha', 'Amutha', 'ganesh'],
'gender': ['male', 'male', 'male', 'female', 'female', 'male'],
'math score': [50, 100, 70, 80, 75, 40],
'test preparation': ['none', 'completed', 'none', 'completed',
'completed', 'none'],
}
# 創(chuàng)建一個 Dataframe 對象
df = pd.DataFrame(data)
# 條件應(yīng)用
df["gender"] = np.where(df["gender"] == "female", 0, 1)輸出:

使用NumPy.where()函數(shù)
方法3:使用pandas掩碼函數(shù)
Pandas的掩蔽函數(shù)是為了用一個條件替換任何行或列的值。
語法: df[‘column_name’].mask( df[‘column_name’] == ‘some_value’, value , inplace=True )
示例:使用這個屏蔽條件,將性別欄中所有的 “女性 “改為0。
import pandas as pd
import numpy as np
# data
data= {
'Name': ['John', 'Jay', 'sachin', 'Geetha', 'Amutha', 'ganesh'],
'gender': ['male', 'male', 'male', 'female', 'female', 'male'],
'math score': [50, 100, 70, 80, 75, 40],
'test preparation': ['none', 'completed', 'none', 'completed',
'completed', 'none'],
}
# 創(chuàng)建一個 Dataframe 對象
df = pd.DataFrame(data)
# 條件應(yīng)用 1
df['gender'].mask(df['gender'] == 'female', 0, inplace=True)
# 條件應(yīng)用 2
#df['math score'].mask(df['math score'] >=60 ,'good', inplace=True)輸出:

使用pandas掩碼函數(shù)
方法4:替換包含指定字符的字符串
語法 : data["列名"].mask(data.列名.str.contains(".*?某字符串"), "替換目標字符串", inplace=True)
import pandas as pd
import numpy as np
# data
data= {
'Name': ['John', 'Jay', 'sachin', 'Geetha', 'Amutha', 'ganesh'],
'gender': ['male', 'male', 'male', 'female', 'female', 'male'],
'math score': [50, 100, '良70', 80, '良75', 40],
'test preparation': ['none', 'completed', 'none', 'completed',
'completed', 'none'],
}
# 創(chuàng)建一個 Dataframe 對象
df = pd.DataFrame(data)
# 條件應(yīng)用
data["math score"].mask(data.math score.str.contains(".*?良"), "良好", inplace=True) 
使用pandas掩碼函數(shù)
到此這篇關(guān)于Pandas中根據(jù)條件替換列中的值的四種方式的文章就介紹到這了,更多相關(guān)Pandas 條件替換列值內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用Djongo模塊在Django中使用MongoDB數(shù)據(jù)庫
Django框架為我們提供了簡潔方便的ORM模型供我們對數(shù)據(jù)庫進行各種操作,但是這個“數(shù)據(jù)庫”卻并不包括NoSQL的典型——MongoDB。不少Django初學(xué)者也會到處詢問,如何才能在Django中使用MongoDB。本文將介紹使用Djongo來在Django中集成MongoDB數(shù)據(jù)庫2021-06-06
基于python(urlparse)模板的使用方法總結(jié)
下面小編就為大家?guī)硪黄趐ython(urlparse)模板的使用方法總結(jié)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-10-10
Python-OpenCV:cv2.imread(),cv2.imshow(),cv2.imwrite()的區(qū)別
本文主要介紹了OpenCV cv2.imread(),cv2.imshow(),cv2.imwrite()的區(qū)別,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-06-06
Python+matplotlib實現(xiàn)堆疊圖的繪制
Matplotlib作為Python的2D繪圖庫,它以各種硬拷貝格式和跨平臺的交互式環(huán)境生成出版質(zhì)量級別的圖形。本文將利用Matplotlib庫繪制堆疊圖,感興趣的可以了解一下2022-03-03
Python實現(xiàn)自動化批量調(diào)整Word樣式
在日常工作中,處理大量的Word文檔是一個常見的任務(wù),尤其是需要批量修改文檔的樣式時,本文為大家介紹了如何使用Python實現(xiàn)自動化批量調(diào)整Word樣式,需要的可以參考下2024-12-12
python如何實現(xiàn)全角半角的相互轉(zhuǎn)換
這篇文章主要介紹了python如何實現(xiàn)全角半角的相互轉(zhuǎn)換方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-11-11

