在Pandas中,DataFrame的替换操作可以通过多种方式实现,具体取决于你想要替换的内容和方式。以下是一些常用的替换方法:
1.replace操作替换
replace可以替换固定值为指定值,和python字符串替换方法一一致
import pandas as pd
df1 = pd.DataFrame({'fruit':['apple','banana','orange','apple','banana'],
'color':['red','yellow','yellow','cyan','cyan'],
'price':[8.5,6.8,5.6,7.8,6.4]})
# print(df1.groupby('fruit'))
print(df1)
# 替换操作一
df1["fruit"] = df1["fruit"].replace("apple","苹果")
print(df1)
输出结果如下
fruit color price
0 apple red 8.5
1 banana yellow 6.8
2 orange yellow 5.6
3 apple cyan 7.8
4 banana cyan 6.4
fruit color price
0 苹果 red 8.5
1 banana yellow 6.8
2 orange yellow 5.6
3 苹果 cyan 7.8
4 banana cyan 6.4
1.1 替换多个值
df1["fruit"] = df1["fruit"].replace({"apple":"苹果","banana":"香蕉","orange":"橙子"})
2.使用map()
方法
map()
方法可以用来对DataFrame的每个元素应用一个函数,从而实现更复杂的替换逻辑。
"""
@Time : 2025/5/26 15:04
@Author : white.tie
@File : 01aggregation.py
@Desc : 数据聚合
"""
import pandas as pd
df1 = pd.DataFrame({'fruit':['apple','banana','orange','apple','banana'],
'color':['red','yellow','yellow','cyan','cyan'],
'price':[8.5,6.8,5.6,7.8,6.4]})
# print(df1.groupby('fruit'))
print(df1)
# 替换操作一
# df1["fruit"] = df1["fruit"].replace("apple","苹果")
# df1["fruit"] = df1["fruit"].replace({"apple":"苹果","banana":"香蕉","orange":"橙子"})
# print(df1)
# 替换操作二
df1["fruit"] = df1["fruit"].map({"apple": "苹果"})
print(df1)
输出结果如下所示
fruit color price
0 apple red 8.5
1 banana yellow 6.8
2 orange yellow 5.6
3 apple cyan 7.8
4 banana cyan 6.4
fruit color price
0 苹果 red 8.5
1 NaN yellow 6.8
2 NaN yellow 5.6
3 苹果 cyan 7.8
4 NaN cyan 6.4
3. 使用applymap()
方法
applymap()
方法对DataFrame中的每个元素应用一个函数,适用于简单的单个值替换。
df1 = df1.applymap(lambda x: "苹果" if x == "apple" else x)
print(df1)
输出结果如下
fruit color price
0 苹果 red 8.5
1 banana yellow 6.8
2 orange yellow 5.6
3 苹果 cyan 7.8
4 banana cyan 6.4
4. 使用apply方法
apply里面执行函数替换
# 替换操作二
df1["fruit"] = df1["fruit"].apply(lambda x: x.replace("apple","苹果"))
5.loc或者iloc方式替换
-
loc:
-
接收的是行、列的名称或标签。
-
在切片是按闭区间切片,也就是区间两边都能取到。
-
-
iloc:
-
接收的是行、列的索引位置(下标,从0开始)。
-
按传统的左闭右开的的方式切片。
-
df1.loc[df1['fruit'] == "apple", 'fruit'] = "苹果"
print(df1)
输出结果如下
fruit color price
0 苹果 red 8.5
1 banana yellow 6.8
2 orange yellow 5.6
3 苹果 cyan 7.8
4 banana cyan 6.4