本文最后更新于:2020年7月1日 晚上
六、问题与练习
1.问题
【问题一】 str对象方法和df/Series对象方法有什么区别?
str对象方法有很多针对字符串的方法
在replace方法上,二者有较大差异:
1)str.replace针对object类型或string类型,默认操作:正则表达式
replace针对任意类型的序列或数据框,正则表达式替换:regex=True。使用字典可以支持 多列替换。
2)str.replace类型赋值参数不能是pd.NA。
3)对于string类型Series,使用replace函数不能使用正则表达式替换。
【问题二】 给出一列string类型,如何判断单元格是否是数值型数据?
- 正则表达式进行匹配。
- str.isnumeric有一定的局限性。
【问题三】str.split方法的作用是什么?在什么场合下使用?
- 使用分隔符对每个字符串进行分割并返回列表。
- 可以使用str方法进行元素选择。
【问题四】在本章的第二到第四节分别介绍了字符串类型的5类操作,请思考这些操作的应用场景?
- 拆分:
- 拼接
- 替换
- 字符匹配
- 字符提取
2.练习
【练习一】现有一份关于字符串的数据集,请解决以下问题:
(a)先对字符串编码存储人员信息(在编号后添加ID列),使用如下格式:”xxx(名字):x国人,性别x,生于x年x月x日“
df = pd.read_csv('data/String_data_one.csv',index_col='人员编号', dtype='string')
df['ID'] = df['姓名'].str.cat([': '+df['国籍']+'国人,','性别'+df['性别']+',','生于'+df['出生年']+'年',df['出生月']+'月', df['出生日'] +'日'],na_rep='*')
df['ID'].head()
输出:
(b)将(a)中的人员生日信息部分修改为用中文表示(如一九七四年十月二十三日),其余返回格式不变。
(c)将(b)中的ID列结果拆分为原列表相应的5列,并使用equals检验是否一致。
【练习二】现有一份半虚拟的数据集,第一列包含了新型冠状病毒的一些新闻标题,请解决以下问题:
(a)选出所有关于北京市和上海市新闻标题的所在行。
df = pd.read_csv('data/String_data_two.csv')
df['col1'].str.extract(r'(?P<name_1>北京|上海)').dropna().index
输出:
(b)求col2的均值。
(c)求col3的均值。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!