目录
数据预览:
一、split分割列
1.需求:
2.完整代码展示
3.讲解
(1)分割
(2)写入
4.效果展示
二、partition分割列
1.需求:
2.完整代码展示
3.讲解
(1)分割
(2)写入
4.效果展示
三、合并列
1.需求:
2.完整代码展示
3.讲解
4.效果展示
四、get获取指定位置字符
1.需求:
2.完整代码展示
3.讲解
4.效果展示
五、slice获取指定位置字符
1.需求:
2.完整代码展示
3.讲解
4.效果展示
六、join用指定字符连接每一个字符
1.需求:
2.完整代码展示
3.讲解
4.效果展示
源数据网盘链接:
数据预览:
以下操作示例均用的此数据
一、split分割列
1.需求:
将日期列分割为年、月、日三列
2.完整代码展示
import pandas as pd
adress="D:/pandas练习文件/字符串.xlsx"
data=pd.read_excel(adress)
all_date=data['日期'].astype(str).str.split("-",expand=True)
data['年']=all_date[0]
data['月']=all_date[1]
data['日']=all_date[2]
print(data)
3.讲解
(1)分割
all_date=data['日期'].astype(str).str.split("-",expand=True)
我们首先要以一个变量接收分割的列,并且由于此函数是应用于字符串的,所以需要用astype(str)转换日期为字符串,以需求为例,我们需要按照“-”分割,即split("-",expand=True),expand=True的作用是将分割来的内容单独放在一列上,如果不写这一参数的话,分割的内容还是会在一列,只不过是以列表形式呈现,如图:
(2)写入
data['年']=all_date[0] data['月']=all_date[1] data['日']=all_date[2]
然后需要创建年月日三列并将数据写入,我们已经用一个变量来接收分割好的日期,那么我们可以把分割好的数据理解为一个列表中的三块内容,年这一列即为第一块all_date[0],月这一列即为第二块all_date[1],日这一列即为第三块all_date[2]。
4.效果展示
二、partition分割列
此函数不同于split,partition只能按照第一个符合分割标准的字符进行分割
1.需求:
将日期分为年、月日两列
2.完整代码展示
import pandas as pd
adress="D:/pandas练习文件/字符串.xlsx"
data=pd.read_excel(adress)
all_date=data['日期'].astype(str).str.partition('-')
data['年']=all_date[0]
data['月日']=all_date[2]
print(data)
3.讲解
过程大概和split是一样的,都是先分割再写入
(1)分割
all_date=data['日期'].astype(str).str.partition('-')
我们仍然以一个变量接收分割的列,转换日期为字符串 ,以“-”作为分割标准。
(2)写入
data['年']=all_date[0] data['月日']=all_date[2]
大家看到我标红部分的时候是否感到奇怪:月日不应该是all_date[1]吗?大家看下图就明白了
对,partition方法和split的另一个不同就是这里了,split中作为分割标准的“-”是直接省略不写的,然而在partition中分隔符却是自称一列,所以all_date[1]代表的是“-”,而不是我们需要的月日,月日应该是all_date[2]
4.效果展示
三、合并列
1.需求:
将省、市、区三列合并为一列
2.完整代码展示
import pandas as pd
adress="D:/pandas练习文件/字符串.xlsx"
data=pd.read_excel(adress)
data['地址']=data['省']+data['市']+data['区']
print(data)
3.讲解
此效果的实现是非常简单的,只需要将要合并的列用“+”相加
4.效果展示
四、get获取指定位置字符
1.需求:
比如我想知道大家的年龄都是几十,20+?30?40+?即我们需要提取年龄的第一个数
2.完整代码展示
import pandas as pd
adress="D:/pandas练习文件/字符串.xlsx"
data=pd.read_excel(adress)
data["年龄第一个数"]=data['年龄'].astype(str).str.get(0)
print(data)
3.讲解
data["年龄第一个数"]=data['年龄'].astype(str).str.get(0)
由于年龄列的类型是int,所以我们首先应该将其转换为字符串类型,然后利用get(0)获取第一个数
4.效果展示
五、slice获取指定位置字符
1.需求:
获取日期列中的月日
2.完整代码展示
import pandas as pd
adress="D:/pandas练习文件/字符串.xlsx"
data=pd.read_excel(adress)
data["月日"]=data['日期'].astype(str).str.slice(5,10)
print(data)
3.讲解
data["月日"]=data['日期'].astype(str).str.slice(5,10)
第一步仍然是将日期转换为字符串类型,slice这一函数和get的不同在于get只能获取一个字符,而slice可以获取多个,slice(起始位置,结束位置,步长),其中所取字符不包括结束位置的字符,而且用slice_replace(起始位置,结束位置,替换值)还能替换选中位置的字符
4.效果展示
六、join用指定字符连接每一个字符
1.需求:
将姓名中的每个字用“*”连接(这个需求可能看着不合理,但是我也实在想不出这个函数有什么应用场景了,大家如果有好的想法可以在评论区告诉我哦~)
2.完整代码展示
import pandas as pd
adress="D:/pandas练习文件/字符串.xlsx"
data=pd.read_excel(adress)
data["姓名2"]=data['姓名'].str.join("*")
print(data)
3.讲解
data["姓名2"]=data['姓名'].str.join("*")
这个函数应用很简单,只需要将想要设置的连接字符写入即可
4.效果展示
文章来源:https://www.toymoban.com/news/detail-795351.html
源数据网盘链接:
链接:https://pan.baidu.com/s/1xeCmsDTcEHa6rRjJJVGu6g
提取码:1234文章来源地址https://www.toymoban.com/news/detail-795351.html
到了这里,关于pandas字符串操作(上)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!