读取数据
在进行字符匹配前,首先我们需要读取相应的数据,使用的是pd.read_csv(‘这里填写相应的文件路径’)
import pandas as pd
import numpy as np
data = pd.read_csv('../datasets/Soccer.csv')
#head是显示文件的前五行数据
data.head()
显示数据为:
匹配字符串
下面对于属性‘birthplace’进行匹配,匹配以大写字母开头的出生地点(birthplace)。首先将Series获得birthplace,转换为str使用contain进行字符串匹配。具体代码如下:
data_bool = pd.Series(data['birthplace']).str.contains(r'^G')
print(data_bool)
此时,得到每个cell的值为真值,True 或False(匹配为True,不匹配为False)。
显示单元格实际值
然后将True转化为其单元格的真实值
print(data['birthplace'][data_bool == True])
得到最后结果为所有匹配的单元格,具体执行结果为:
重置索引
但是这里有个问题就是,所有值的前面都有一个索引,但索引并不是从0开始,而是按照其值在原来列中的索引来显示的。所以,我们需要进行重新索引,使其索引是顺序的。
#将前面获取到的值赋给data_old_index
data_old_index = data['birthplace'][data_bool == True]
#重置索引
get_index = data_old_index.reset_index(drop=True)
print(get_index)
我们使用get_index()函数进行索引重置,其中的参数drop = True表示不会保留原来的索引index列,而是直接使用重置后的索引,默认为False。显示结果为:
上面看到,我们已经成功将索引进行了重置,结果显示所有符合匹配条件的值,并且索引从0开始。
至此对于pandas中字符串的匹配方法,以及索引重置就已经介绍完毕。后续如果想要继续进行匹配练习,可以参考python中re模块的匹配方法。