📜  column.replace - Python (1)

📅  最后修改于: 2023-12-03 14:59:59.750000             🧑  作者: Mango

使用 pandas 中的 column.replace() 方法更改数据

如果你需要修改 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 数据帧中的特定数据。这个方法可以帮助你避免在数据帧中手动更改数据的麻烦,并帮助你更快地完成要求。