Pandas 的 replace() 是一个非常丰富的函数,用于从 DataFrame 中替换 字符串,正则表达式,字典,列表系列。DataFrame 的值可以动态地替换为其他值。它能够与 Python 正则表达式一起使用。

这与使用 .loc.iloc 进行更新不同,后者需要您指定要用某个值进行更新的位置。

语法:

DataFrame.replace(to_replace=None, value=None, inplace=False, limit=None, regex=False, method='pad', axis=None)  

参数:

  • to_replace: 定义我们要在 DataFrame 中替换的模式。
  • value: 用于填充 DataFrame 中空洞的值(例如 0),或者是一个指定每列使用哪个值的字典(不在字典中的列将不被填充)。 它还允许诸如正则表达式、字符串、列表或字典等对象。
  • inplace: 如果为 True,则在原地替换。

注意: 如果为 True,它还将修改此对象的任何其他视图(例如,DataFrame 的列)。如果为 True,则返回调用者。

  • limit: 定义前向或后向填充的最大大小间隙。
  • regex: 它检查是否将 to_replace 和/或 value 解释为正则表达式。如果为 True,则 to_replace 必须是一个字符串。否则,to_replace 必须为 None,因为此参数将被解释为正则表达式或正则表达式列表、字典或数组。
  • method: 当 to_replace 是一个列表时,它是用于替换的方法。

返回: 在替换后返回一个 DataFrame 对象。

示例1:

import pandas as pd  
info = pd.DataFrame({'Language known': ['Python', 'Android', 'C', 'Android', 'Python', 'C++', 'C']},  
index=['Parker', 'Smith', 'John', 'William', 'Dean', 'Christina', 'Cornelia'])  
print(info)   
dictionary = {"Python": 1, "Android": 2, "C": 3, "Android": 4, "C++": 5}  
info1 = info.replace({"Language known": dictionary})  
print("\n\n")  
print(info1)  

输出

           Language known
Parker        Python
Smith         Android
John          C
William       Android
Dean          Python
Christina     C++
Cornelia      C



             Language known
Parker         1
Smith          4
John           3
William        4
Dean           1
Christina      5
Cornelia       3

示例2:

下面的示例在 DataFrame 中用另一个值替换一个值。

import pandas as pd  
info = pd.DataFrame({  
    'name':['Parker','Smith','John'],  
    'age':[27,34,31],  
    'city':['US','Belgium','London']  
})  
info.replace([29],38)  

输出

     name       age       City
0    Parker      27         US
1    Smith       34         Belgium
2    John        38         London

示例3:

下面的示例使用字典替换值:

import pandas as pd  
info = pd.DataFrame({  
    'name':['Parker','Smith','John'],  
    'age':[27,34,31],  
    'city':['US','Belgium','London']  
})  
info.replace({  
    34:29,  
    'Smith':'William'  
})  

输出

    name        age     City
0    Parker      27       US
1    William     29       Belgium
2    John        31       London

示例4:

下面的示例使用正则表达式替换值:

import pandas as pd  
info = pd.DataFrame({  
    'name':['Parker','Smith','John'],  
    'age':[27,34,31],  
    'city':['US','Belgium','London']  
})  
info.replace('Sm.+','Ela',regex=True)  

输出

    name       age      City
0    Parker     27        US
1    Ela        34        Belgium
2    John       31        London

标签: Pandas, Pandas教程, Pandas库, Pandas基础, Pandas学习, Pandas使用, Pandas指南, Pandas入门教程, Pandas模块, Pandas数据库, Pandas实战教程, Pandas用法总结, Pandas文档