下面是关于“Pandas模糊查询与替换的操作”的完整攻略。
模糊查询
Pandas提供了str.contains()
方法来进行模糊查询。该方法需要传入一个正则表达式作为查询条件,只要匹配成功就会返回True。
示例:
首先,我们创建一个包含姓名和城市的数据集合:
import pandas as pd
data = pd.DataFrame({
'Name': ['Tom', 'Jack', 'Steve', 'Ricky', 'Lisa'],
'City': ['London', 'Edinburgh', 'New York', 'Sydney', 'Washington']
})
现在我们想要查询出所有居住在美国的用户。这时候,我们就可以使用str.contains()
方法,传入一个正则表达式\b[A-Z][a-z]+\b
,表示只返回由两个字母组成的城市名(如:New York、San Francisco)。具体代码如下:
us_data = data[data['City'].str.contains(r'\b[A-Z][a-z]+\b')]
print(us_data)
输出结果:
Name City
2 Steve New York
4 Lisa Washington
可以看到,只返回了我们需要的两条数据。
替换操作
Pandas提供了str.replace()
方法来进行替换操作。该方法需要传入两个参数,第一个参数为待替换的字符串或正则表达式,第二个参数为替换成的字符串。
示例:
继续以上面数据集合为例。现在我们想要将名字中的所有元音字母替换成 ‘’。那么,我们可以使用str.replace()
方法,传入一个正则表达式 [a,e,i,o,u]
作为待替换的内容,传入一个 ‘’ 作为替换成的内容。具体代码如下:
data['Name'] = data['Name'].str.replace(r'[a,e,i,o,u]', '*')
print(data)
输出结果:
Name City
0 T*m London
1 J*ck Edinburgh
2 St*v* New York
3 R*cky Sydney
4 L*s Washington
可以看到,所有元音字母都被替换成了 ‘*’。