Python pandas dataframe字符串处理字符串替换字符串截取

字符串替换

-- 简单替换

使用replace函数

data
     ts_code  symbol  name area industry  list_date
0  000001.SZ     NaN  平安银行   上海       银行   19910403
1  000002.SZ     2.0   万科A   上海     全国地产   19910129
2  000004.SH     4.0  ST国华   上海     软件服务   19910114
3  000005.SZ     5.0  ST星源   上海     环境保护   19901210
4  000006.SH     NaN  深振业A   上海     区域地产   19920427
data["area"] = data["area"].replace("上海", "深圳")    #将area列中的上海替换为深圳
data
     ts_code  symbol  name area industry  list_date
0  000001.SZ     NaN  平安银行   深圳       银行   19910403
1  000002.SZ     2.0   万科A   深圳     全国地产   19910129
2  000004.SH     4.0  ST国华   深圳     软件服务   19910114
3  000005.SZ     5.0  ST星源   深圳     环境保护   19901210
4  000006.SH     NaN  深振业A   深圳     区域地产   19920427
data["area"] = data["area"].str.replace("深圳", "上海")    #将area列中深圳替换为上海
data
     ts_code  symbol  name area industry  list_date
0  000001.SZ     NaN  平安银行   上海       银行   19910403
1  000002.SZ     2.0   万科A   上海     全国地产   19910129
2  000004.SH     4.0  ST国华   上海     软件服务   19910114
3  000005.SZ     5.0  ST星源   上海     环境保护   19901210
4  000006.SH     NaN  深振业A   上海     区域地产   19920427

-- 复杂替换

使用apply函数lambda表达式进行替换

data
     ts_code  symbol  name area industry  list_date
0  000001.SZ     NaN  平安银行   深圳       银行   19910403
1  000002.SZ     2.0   万科A   深圳     全国地产   19910129
2  000004.SH     4.0  ST国华   深圳     软件服务   19910114
3  000005.SZ     5.0  ST星源   深圳     环境保护   19901210
4  000006.SH     NaN  深振业A   深圳     区域地产   19920427

# 将ts_code列中".SZ"和".SH"移动到股票代码前变为小写的"sz"和"sh"

data["ts_code"].apply(lambda code: "sz"+code[:6] if ".SZ" in code else "sh"+code[:6])
0    sz000001
1    sz000002
2    sh000004
3    sz000005
4    sh000006
Name: ts_code, dtype: object

截取字符串

data
     ts_code  symbol  name area industry  list_date
0  000001.SZ     NaN  平安银行   深圳       银行   19910403
1  000002.SZ     2.0   万科A   深圳     全国地产   19910129
2  000004.SZ     4.0  ST国华   深圳     软件服务   19910114
3  000005.SZ     5.0  ST星源   深圳     环境保护   19901210
4  000006.SZ     NaN  深振业A   深圳     区域地产   19920427
# data["ts_code"].apply(lambda code: code[:6])  #lambda表达式截取前六位字符
data["ts_code"].str[:6]    #截取 ts_code 列前六位字符
0    000001
1    000002
2    000004
3    000005
4    000006
Name: ts_code, dtype: object

视频移步:

https://www.bilibili.com/video/BV1Je411L7rB/?vd_source=7630aa6f518b760ec9d36398618be60f

  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值