日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

Pandas中根據條件替換列中的值的四種方式_python

作者:Rick_M359 ? 更新時間: 2023-03-12 編程語言

方法1:使用dataframe.loc[]函數

通過這個方法,我們可以用一個條件或一個布爾數組來訪問一組行或列。如果我們可以訪問它,我們也可以操作它的值,是的!這是我們的第一個方法,通過pandas中的dataframe.loc[]函數,我們可以訪問一個列并通過一個條件改變它的值。

語法: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'],
}
  
# 創建一個 Dataframe 對象
df = pd.DataFrame(data)
  
# 條件應用
df.loc[df["gender"] == "male", "gender"] = 1

?輸出:

使用dataframe.loc[]函數

方法2:使用NumPy.where()函數

NumPy是一個非常流行的庫,用于2D和3D數組的計算。它為我們提供了一個非常有用的方法where()來訪問有條件的特定行或列。我們也可以用這個函數來改變某一列的特定值。 語法:?df[“column_name”] = np.where(df[“column_name”]==”some_value”, value_if_true, value_if_false)?

?示例: 這個numpy.where()函數應該寫上條件,如果條件為真,后面是值,如果條件為假,則是一個值。現在,我們要把性別欄中的所有 “女性 “改為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'],
}
  
# 創建一個 Dataframe 對象
df = pd.DataFrame(data)
  
 # 條件應用
df["gender"] = np.where(df["gender"] == "female", 0, 1)

輸出:

使用NumPy.where()函數

方法3:使用pandas掩碼函數

Pandas的掩蔽函數是為了用一個條件替換任何行或列的值。

語法:?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'],
}
  
# 創建一個 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掩碼函數

方法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'],
}
  
# 創建一個 Dataframe 對象
df = pd.DataFrame(data)
  
# 條件應用 
data["math score"].mask(data.math score.str.contains(".*?良"), "良好", inplace=True) 

使用pandas掩碼函數

原文鏈接:https://blog.csdn.net/Rick_M/article/details/128439156

欄目分類
最近更新