Pandas中根據(jù)條件替換列中的值的四種方式
方法1:使用dataframe.loc[]函數(shù)
通過這個方法,我們可以用一個條件或一個布爾數(shù)組來訪問一組行或列。如果我們可以訪問它,我們也可以操作它的值,是的!這是我們的第一個方法,通過pandas中的dataframe.loc[]函數(shù),我們可以訪問一個列并通過一個條件改變它的值。
語法:df.loc[ df["column_name"] == "some_value", "column_name" ] = "value"
some_value = 需要被替換的值 value = 應該被放置的值。
示例: 我們要把性別欄中的所有 “男性 “改為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) # 條件應用 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ù)應該寫上條件,如果條件為真,后面是值,如果條件為假,則是一個值。現(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) # 條件應用 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) # 條件應用 1 df['gender'].mask(df['gender'] == 'female', 0, inplace=True) # 條件應用 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) # 條件應用 data["math score"].mask(data.math score.str.contains(".*?良"), "良好", inplace=True)
使用pandas掩碼函數(shù)
到此這篇關于Pandas中根據(jù)條件替換列中的值的四種方式的文章就介紹到這了,更多相關Pandas 條件替換列值內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
python pycurl驗證basic和digest認證的方法
這篇文章主要介紹了python pycurl驗證basic和digest認證的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-05-05TensorFlow實現(xiàn)模型斷點訓練,checkpoint模型載入方式
這篇文章主要介紹了TensorFlow實現(xiàn)模型斷點訓練,checkpoint模型載入方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05Tornado實現(xiàn)多進程/多線程的HTTP服務詳解
這篇文章主要介紹了Tornado實現(xiàn)多進程/多線程的HTTP服務詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值2019-07-07python將unicode和str互相轉化的實現(xiàn)
這篇文章主要介紹了python將unicode和str互相轉化的實現(xiàn),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05工程師必須了解的LRU緩存淘汰算法以及python實現(xiàn)過程
這篇文章主要介紹了工程師必須了解的LRU緩存淘汰算法以及python實現(xiàn)過程,幫助大家更好的學習算法數(shù)據(jù)結構,感興趣的朋友可以了解下2020-10-10