📅  最后修改于: 2023-12-03 15:18:15.195000             🧑  作者: Mango
在 Pandas 中,我们经常需要对特定的数据进行修改或替换。对于一些复杂的操作,条件替换能够帮助我们快速完成操作。本篇文章将介绍 Pandas 中常用的条件替换方法。
单条件替换是指对满足某一条件的数据进行修改。在 Pandas 中,我们可以使用 loc
函数定位到满足条件的数据,并使用赋值符号进行修改。
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3, 4],
'B': [5, 6, 7, 8]})
df.loc[df['A'] > 2, 'B'] = 0
print(df)
输出结果为:
A B
0 1 5
1 2 6
2 3 0
3 4 0
上述代码中,我们使用了条件 df['A'] > 2
定位到满足该条件的行,并对这些行中的 'B'
列数据进行替换。
多条件替换是指对满足多个条件的数据进行修改。在 Pandas 中,我们可以使用 loc
函数和 &
(与)进行多条件筛选。
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3, 4],
'B': [5, 6, 7, 8]})
df.loc[(df['A'] > 2) & (df['B'] < 8), 'B'] = 0
print(df)
输出结果为:
A B
0 1 5
1 2 6
2 3 0
3 4 8
上述代码中,我们使用了条件 df['A'] > 2
和 df['B'] < 8
定位到满足这两个条件的行,并对这些行中的 'B'
列数据进行替换。
模糊条件替换是指对某些模糊的条件进行替换。在 Pandas 中,我们可以使用 str.contains()
函数定位到满足条件的数据,并使用赋值符号进行修改。
import pandas as pd
df = pd.DataFrame({'A': ['dog', 'cat', 'dog and cat', 'bird'],
'B': [5, 6, 7, 8]})
df.loc[df['A'].str.contains('dog'), 'B'] = 0
print(df)
输出结果为:
A B
0 dog 0
1 cat 6
2 dog and cat 0
3 bird 8
上述代码中,我们使用了条件 df['A'].str.contains('dog')
定位到包含 'dog'
的数据,并对这些数据中的 'B'
列数据进行替换。
有时候我们需要将满足条件的数据替换为空值。在 Pandas 中,我们可以使用 np.nan
(空值)进行替换。
import pandas as pd
import numpy as np
df = pd.DataFrame({'A': [1, 2, 3, 4],
'B': [5, 6, 7, 8]})
df.loc[df['A'] > 2, 'B'] = np.nan
print(df)
输出结果为:
A B
0 1 5.0
1 2 6.0
2 3 NaN
3 4 NaN
上述代码中,我们使用了条件 df['A'] > 2
定位到满足该条件的行,并对这些行中的 'B'
列数据进行空值替换。
以上是 Pandas 条件替换系列中的值的详细介绍。通过条件替换,我们可以快速地对数据进行修改和替换,更高效地进行数据处理。