import numpy as np
  import pandas as pd
1 #字符串常用方法 - strip
s = pd.Series([' jack ','jill',' jease ','feank'])
df = pd.DataFrame(np.random.randn(3,2),columns=[' Column A',' Column B'],index=range(3))
print(s)
print(df.columns) print('----')
print(s.str.lstrip().values)#去掉左边的空格
print(s.str.rstrip().values)#去掉右边的空格
df.columns = df.columns.str.strip()
print(df.columns)

结果:

0      jack
1 jill
2 jease
3 feank
dtype: object
Index([' Column A', ' Column B'], dtype='object')
----
['jack ' 'jill' 'jease ' 'feank']
[' jack' 'jill' ' jease' 'feank']
Index(['Column A', 'Column B'], dtype='object')
#字符串常用方法 - replace  替换字符串
df = pd.DataFrame(np.random.randn(3,2),columns=[' Columns A',' Columns B'],index = range(3))
print(df.columns)
df.columns = df.columns.str.replace(' ','-')
print(df.columns) df.columns = df.columns.str.replace('-','hehe',n=1)#表示用hehe去替换第一个' '
print(df.columns)

结果:

Index([' Columns A', '  Columns B'], dtype='object')
Index(['-Columns-A', '--Columns-B'], dtype='object')
Index(['heheColumns-A', 'hehe-Columns-B'], dtype='object')
#字符串常用方法 - split、rsplit  分成列表list的形式
s = pd.Series(['a,b,c','1,2,3',['a,,,c'],np.nan])
print(s)
print('----')
print(s.str.split(','))
print('----')
#类似于字符串的split
print(s.str.split(',')[0])#索引第一行
print(s.str.split(',').str[0])#第一列
print(s.str.split(',').str.get(1))#第二列
#可以使用get或者[]符号访问拆分列表的元素 print(s.str.split(',',expand=True,n=1))#n为拓展数量
print(s.str.rsplit(',',expand=True,n=1))#rsplit 从右到左分
#expand可以扩展此操作来返回DataFrame
#n参数限制分数
#rsplit类似于split,反向工作,即从字符串的末尾到字符串开头
print('dataframe:')
df = pd.DataFrame({'key1':['a,b,c','1,2,3',[',,,']],
'key2':['a-b-c','1-2-c',[',-,-,']]})
print(df['key2'])
print(df['key2'].str.split('-'))

结果:
0      a,b,c
1      1,2,3
2    [a,,,c]
3        NaN
dtype: object
----
0    [a, b, c]
1    [1, 2, 3]
2          NaN
3          NaN
dtype: object
----
['a', 'b', 'c']
0      a
1      1
2    NaN
3    NaN
dtype: object
0      b
1      2
2    NaN
3    NaN
dtype: object
     0    1
0    a  b,c
1    1  2,3
2  NaN  NaN
3  NaN  NaN
     0    1
0  a,b    c
1  1,2    3
2  NaN  NaN
3  NaN  NaN
dataframe:
0      a-b-c
1      1-2-c
2    [,-,-,]
Name: key2, dtype: object
0    [a, b, c]
1    [1, 2, c]
2          NaN
Name: key2, dtype: object

#字符串索引
s = pd.Series(['A','b','C','bbhello','',np.nan,'hj'])
df = pd.DataFrame({'key1':list('abcdef'),
'key2':['hee','fv','w','hjja','',np.nan]})
print(s,'\n-----')
print(s.str[0])#取第一个字符串
print(s.str[:2])#取前2个字符
print('-----')
print(df['key2'].str[0])
#str之后和字符串本身索引方式相同

结果:

0          A
1 b
2 C
3 bbhello
4 123
5 NaN
6 hj
dtype: object
-----
0 A
1 b
2 C
3 b
4 1
5 NaN
6 h
dtype: object
0 A
1 b
2 C
3 bb
4 12
5 NaN
6 hj
dtype: object
-----
0 h
1 f
2 w
3 h
4 1
5 NaN
Name: key2, dtype: object

2018.03.26 Python-Pandas 字符串常用方法的更多相关文章

  1. 2018.03.27 python pandas merge join 使用

    #2.16 合并 merge-join import numpy as np import pandas as pd df1 = pd.DataFrame({'key1':['k0','k1','k2 ...

  2. 2018/4/26 python文件处理方式

    目录 2018/4/26总结 1. 如果有一天群内问题总结: 问题:python2和python3的默认编码是什么? 2. python学习总结: python的处理文件方式 2018/4/26总结 ...

  3. python pandas字符串函数详解(转)

     pandas字符串函数详解(转)——原文连接见文章末尾 在使用pandas框架的DataFrame的过程中,如果需要处理一些字符串的特性,例如判断某列是否包含一些关键字,某列的字符长度是否小于3等等 ...

  4. Python入门-字符串常用方法

    Python 字符串 字符串是 Python 中最常用的数据类型.我们可以使用引号('或")来创建字符串. 创建字符串很简单,只要为变量分配一个值即可. var1 = 'Hello Worl ...

  5. Python中字符串常用方法

    capitalize() String.capitalize() 将字符串首字母变为大写 name = 'xiaoming' new_name = name.capitalize() print(ne ...

  6. python基础---字符串常用方法汇总

    s3 = '123's2 = ' 's1 = 'This Is \t Cash's='abcdefghijklmnopqrstuvwxyz's4 = "0000000this is stri ...

  7. 2018/03/26 每日一个Linux命令 之 du

    昨天使用 df 查看了磁盘空间中所有的容量. 今天学习 du 查看目录或者文件的大小. du会显示指定的目录或文件所占用的磁盘空间. -- du命令用来查看目录或文件所占用磁盘空间的大小.常用选项组合 ...

  8. Python 基础教程 —— Pandas 库常用方法实例说明

    目录 1. 常用方法 pandas.Series 2. pandas.DataFrame ([data],[index])   根据行建立数据 3. pandas.DataFrame ({dic})  ...

  9. python基础3 字符串常用方法

    一. 基础数据类型 总览 int:用于计算,计数,运算等. 1,2,3,100...... str:'这些内容[]'    用户少量数据的存储,便于操作. bool: True, False,两种状态 ...

随机推荐

  1. 四、Signalr手持令牌验证

    一.JWT 服务端在respose中设置好cookie,浏览器发请求都会自动带上,不需要做额外设置 但是如果客户端是非浏览器,或者要兼容多种客户端,这个方法就不行了 Js端 @{ Layout = n ...

  2. java数据结构03

    1.求二叉树的深度 https://www.cnblogs.com/xudong-bupt/p/4036190.html class TreeNode { char val; TreeNode lef ...

  3. 22_2mybatis——CURD

    1.CURD操作 第一步:创建maven工程并导入坐标 <?xml version="1.0" encoding="UTF-8"?> <pro ...

  4. 2018牛客网暑期ACM多校训练营(第十场)J Rikka with Nickname(二分,字符串)

    链接:https://ac.nowcoder.com/acm/contest/148/J?&headNav=acm 来源:牛客网 Rikka with Nickname 时间限制:C/C++ ...

  5. 解决Kloxo出现Could not open database connection问题

    当我们在使用或者运行kloxo面板的时候,可能会出现类似"Could not open database connection"错误提示,对于新手朋友来说肯定本身安装面板管理VPS ...

  6. 修改 git log

    修改最新的log git commit --amend git push -f #强制推送 修改历log git rebase -i HEAD~2 pick 1f639c0 222pick a8aef ...

  7. Spring + Mybatis 企业应用实战 第1章 Java EE应用

    Java EE应用的分层模型: Domain Object 领域对象层.就是一些pojo. DAO(data access object) 数据访问对象 Service 业务逻辑层 Controlle ...

  8. HTTPS的常见错误及解决方案Chrome篇

    Chrome浏览器错误代码 问题原因 解决方法 NET::ERR_CERT_DATE_INVALID 网站的ssl证书有效期过期导致的 重新申请新的SSL证书 NET::ERR_CERT_COMMON ...

  9. java集合源码分析几篇文章

    java集合源码解析https://blog.csdn.net/ns_code/article/category/2362915

  10. 那些jquery或javascript花招

    js定时器 定时器: 1)反复性定时器:格式:window.setInterval(“fn()”,1000); a)会反复执行 b)第二个参数是以毫秒计算的 2)一次性定时器:格式:window.se ...