利用python进行数据分析pandas_字符串

# -*- coding: utf-8 -*-
"""
Created on Mon Oct 28 17:30:22 2019

@author: weiping
"""

val = 'a,b , gudd , tt'
val.split(',')

pp = [x.strip() for x in val.split(',')]
pp

''' 字符串连接 '''
a,b,c,d = pp
a +"-" +b+"-"+c+"-"+d  #字符串可以直接用 + 连接
"-".join(pp) #与上述结果相同

'''字符串定位'''
'tt' in pp
val.index(',') #返回第一个 ‘,’的 位子 Out[221]: 1
val.find(',')#  Out[222]: 1
val.index('::') #报错 ValueError: substring not found
val.find('::') # Out[224]: -1 
val.rfind(',') #Out[228]: 11 返回最后一字符串出现的位置
'''find和index的区别,如果找不到字符串 index会报异常,find 会返回 -1 '''
val.count(',')  #返回 字符串的出现次数,没有则返回 0
val.count('::')

val.replace(',','--') 
pp[3].ljust(10) #返回固定长度10的字符串 不够的用 空格 替代  Out[231]: 'tt        '

'''
简述正则表达式(regex)
'''
import re 
import pandas as pd
text = 'ig\trng\twe\tskt'
print(text)
'''ig      rng     we      skt'''
re.split('\s+',text) # \s+  表示一个或多个 空白符 (制表符 空格 换行符等)

regex = re.compile('\s+')

regex.split(text)
regex.findall(text) #找出要匹配的所有值
regex.search(text) 
regex.sub('----',text) #类似replace 但是范围更广(text.replace('\t','----'))
'''Out[248]: 'ig----rng----we----skt'''


addr = 'haeg:we@163.com /fdfs:ig@gmail.com/dfdf: rng@qq.com'
pattern = '[a-z]*@[a-z0-9]*\.[a-z]{3}'
ad = re.findall(pattern,addr)
#Out[256]: ['we@163.com', 'ig@gmail.com', 'rng@qq.com']

pat = '([a-z0-9]*)@([a-z0-9]*)\.([a-z]{3})'
ad2 = re.findall(pat,addr)
df = pd.DataFrame(ad2,columns = ['name','mail','net'])
df
'''
Out[261]: 
  name   mail  net
0   we    163  com
1   ig  gmail  com
2  rng     qq  com
'''
#代码可复制执行

正则表达式模块详细可以阅读 https://docs.python.org/zh-cn/3/library/re.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值