我们今天来学Python数据处理分析中最重要的工具-Pandas,Pandas就像是Excel的超级加强版,能够轻松处理和分析数据、处理快准狠。
在处理财务数据时,频繁遇到需批量执行一对一或多对多的替换操作?Pandas库提供了以下几种高效方法供选择:
通常,可以采用①replace方法、②map方法、③apply方法以及④loc方法来实现这些需求。
1.使用replace方法
1.1基本替换
df.replace(to_replace='旧值', value='新值')
#将所有值为 '张三' 的元素替换为 '张小三'df.replace(to_replace='张三', value='张小三')
1.2字典映射替换
replacement_dict = {'旧值1': '新值1', '旧值2': '新值2'}df.replace(to_replace=replacement_dict)
#查找所有列的值,如果某个值为('A', 'B', 'C', 'D'),则将其替换(即 '优秀', '中等', '一般', '差劲')replace_dict = {'A': '优秀', 'B': '中等','C': '一般','D': '差劲'}df.replace(to_replace=replace_dict)
1.3指定列替换:
df['列名'].replace(to_replace='旧值', value='新值')
#将“性别”这一列里所有的“男”值替换为“Boy”df['性别']=df['性别'].replace(to_replace='男', value='Boy')
2. 使用map方法(通常用于Series对象)
mapping_dict = {'旧值1': '新值1', '旧值2': '新值2'}df['列名'].map(mapping_dict)
#“性别”列的值会根据字典进行如下替换:“男”被替换为“Boy”,“女”被替换为“Girl”mapping_dict = {'男': 'Boy', '女': 'Girl'}df['性别']=df['性别'].map(mapping_dict)
3. 使用apply方法(可以对DataFrame的行或列应用自定义函数)
3.1对【列】应用函数:
def custom_function(x):if x == '旧值':return '新值'return xdf['列名'] = df['列名'].apply(custom_function)
#定义了一个函数JJ,并使用 apply方法将这个函数应用到df的“性别”列上,以实现值的替换。#替换规则:原本为 '男' 的单元格会被替换为 'Boy'。#替换规则:其他值(比如 '女' 或其他任何值)保持不变。def JJ(x):if x == '男':return 'Boy'return xdf['性别'] = df['性别'].apply(JJ)
3.2.对【整个DataFrame】应用函数:
def custom_function(row):if row['列名1'] == '旧值':row['列名2'] = '新值'return rowdf = df.apply(custom_function, axis=1)
4.使用loc或iloc进行条件替换
df.loc[df['列名'] == '旧值', '列名'] = '新值'
#找到“民族”列值为“回”的行,并将这些行的“加分”列的值设置为“少数民族可以加5分”df.loc[df['民族'] == '回', '加分'] = '少数民族可以加5分'#输出结果姓名 学号 成绩 性别 民族 加分0 张三 101 B 男 汉 NaN1 李四 102 A 女 回 少数民族可以加5分2 王五 103 C 男 回 少数民族可以加5分3 赵六 104 D 男 汉 NaN
Pandas的高阶替换用法提供了多种灵活的方式来处理数据中的值替换和转换。根据具体需求选择合适的方法,可以提高数据处理的效率和准确性。

