📅  最后修改于: 2023-12-03 14:59:59.750000             🧑  作者: Mango
如果你需要修改 pandas 数据帧中其中一列的数据,则你可以使用 column.replace()
方法来实现。这个方法可以将特定值替换为新值,以自定义使用的条件替换数据。
以下是一个例子来演示如何使用 column.replace()
方法替换数据:
import pandas as pd
# 创建数据帧
df = pd.DataFrame({'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'],
'B': ['one', 'one', 'two', 'three', 'two', 'two', 'one', 'three'],
'C': [1, 2, 3, 4, 5, 6, 7, 8],
'D': [10, 20, 30, 40, 50, 60, 70, 80]})
# 查看原始数据帧
print(df)
# 将所有 'foo' 改为 'FOO'
df['A'] = df['A'].replace('foo', 'FOO')
# 查看新数据帧
print(df)
输出结果如下:
A B C D
0 foo one 1 10
1 bar one 2 20
2 foo two 3 30
3 bar three 4 40
4 foo two 5 50
5 bar two 6 60
6 foo one 7 70
7 foo three 8 80
A B C D
0 FOO one 1 10
1 bar one 2 20
2 FOO two 3 30
3 bar three 4 40
4 FOO two 5 50
5 bar two 6 60
6 FOO one 7 70
7 FOO three 8 80
此方法同样可以用于替换多个值为一个新值:
import pandas as pd
# 创建数据帧
df = pd.DataFrame({'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'],
'B': ['one', 'one', 'two', 'three', 'two', 'two', 'one', 'three'],
'C': [1, 2, 3, 4, 5, 6, 7, 8],
'D': [10, 20, 30, 40, 50, 60, 70, 80]})
# 查看原始数据帧
print(df)
# 将 'foo' 和 'bar' 改为 'FOOBAR'
df['A'] = df['A'].replace(['foo', 'bar'], 'FOOBAR')
# 查看新数据帧
print(df)
输出结果如下:
A B C D
0 foo one 1 10
1 bar one 2 20
2 foo two 3 30
3 bar three 4 40
4 foo two 5 50
5 bar two 6 60
6 foo one 7 70
7 foo three 8 80
A B C D
0 FOOBAR one 1 10
1 FOOBAR one 2 20
2 FOOBAR two 3 30
3 FOOBAR three 4 40
4 FOOBAR two 5 50
5 FOOBAR two 6 60
6 FOOBAR one 7 70
7 FOOBAR three 8 80
最后,如果需要替换多列的值,可以使用以下语法:
df.replace({'列1': {'旧值1': '新值1', '旧值2': '新值2'}, '列2': {'旧值3': '新值3', '旧值4': '新值4'}})
这个方法可以在数据帧中查找每个列上的特定值,并将其替换为新值。你可以自定义列和值来进行自定义更改。
在上面例子的数据帧中同时对列 A 和列 B 中的 'foo' 进行替换:
df.replace({'A': 'foo', 'B': 'one'}, {'A': 'FOO', 'B': 'ONE'})
使用 column.replace()
方法可以高效、自定义的替换 pandas 数据帧中的特定数据。这个方法可以帮助你避免在数据帧中手动更改数据的麻烦,并帮助你更快地完成要求。