pandas的str方法

pandas特定的列经过str之后,就可以使用各种python常用的字符处理方法了。
首先,构建dataframe:

import pandas as pd
d={'gene':{'a':'gene1','b':'gene2','c':'gene3','d':'gene4'},'expression':{'a':'low:0','b':'mid:3','c':'mid:4','d':'high:9'},'description':{'a':'transposon element','b':'nuclear genes','c':'retrotransposon','d':'unknown'}}
df=pd.DataFrame(d)
print(df)gene expression         description
a  gene1      low:0  transposon element
b  gene2      mid:3       nuclear genes
c  gene3      mid:4          retrotransposon
d  gene4     high:9             unknown

几种常见的str方法如下:

筛选出含有特定字符串的行:contains() 方法

df1=df[df['description'].str.contains('transposon')]
print(df1)gene expression         description
a  gene1      low:0  transposon element
c  gene3      mid:4          retrotransposon

字符串分割(将特定列拿出来,按特定字符分开,然后形成一个新的dataframe)

df1=df['columns_name'].str.split(':',expand=True)
print(df1)0  1
a   low  0
b   mid  3
c   mid  4
d  high  9

当然,可以直接将这两列加到df中:

df[['exp1','exp2']]=df['expression'].str.split(':',expand=True)
print(df)gene expression         description  exp1 exp2
a  gene1      low:0  transposon element   low    0
b  gene2      mid:3       nuclear genes   mid    3
c  gene3      mid:4     retrotransposon   mid    4
d  gene4     high:9             unknown  high    9

注意1:
此时exp2这一列的数据类型是object,即python中的str,而不是int。可以通过astype将其转换为int

print(df['exp2'].dtype)
dtype('O')#'O'即objectdf['exp2']=df['exp2'].astype(int)print(df['exp2'].dtype)
dtype('int32')

注意2:
expand=True不加的话,df1中将只有一列,其实就是一个series。

df=pd.DataFrame(d)
df1=df['expression'].str.split(':')
print(df1)
a     [low, 0]
b     [mid, 3]
c     [mid, 4]
d    [high, 9]
Name: expression, dtype: object
type(df1)
<class 'pandas.core.series.Series'>

字符串的替换

print(df)gene expression         description  exp1 exp2
a  gene1      low:0  transposon element   low    0
b  gene2      mid:3       nuclear genes   mid    3
c  gene3      mid:4     retrotransposon   mid    4
d  gene4     high:9             unknown  high    9df['gene']=df['gene'].str.replace('gene','Gene')print(df)gene expression         description  exp1 exp2
a  Gene1      low:0  transposon element   low    0
b  Gene2      mid:3       nuclear genes   mid    3
c  Gene3      mid:4     retrotransposon   mid    4
d  Gene4     high:9             unknown  high    9

字符串两端的字符的判断 startswith 与 endswith

df1=df[df['expression'].str.startswith('m')]
print(df1)gene expression      description exp1 exp2
b  gene2      mid:3    nuclear genes  mid    3
c  gene3      mid:4  retrotransposon  mid    4

正则表达式 findall的使用

s=df['expression'].str.findall('[a-z]+')
print(s)
a     [low]
b     [mid]
c     [mid]
d    [high]
Name: expression, dtype: object

去除特定字符strip(包括lstrip和rstrip)

print(df1)gene expression      description exp1 exp2
b  gene2      mid:3    nuclear genes  mid    3
c  gene3      mid:4  retrotransposon  mid    4df1['expression']=df1['expression'].str.lstrip('mid:')
print(df1)gene expression      description exp1 exp2
b  gene2          3    nuclear genes  mid    3
c  gene3          4  retrotransposon  mid    4

pandas str方法的使用相关推荐

  1. python3-pandas DataFrame 索引、bool索引、pandas 字符串方法

    1.DataFrame 索引 1.1 普通索引取值 pandas 取行或者列的注意点: 方括号写数组,表示取行,对行进行操作 方括号写字符串,表示取列,对列进行操作 import pandas as ...

  2. Pandas 函数方法汇总一览查询(持续补充改进)

    Pandas 函数方法汇总一览查询(持续补充改进) 文章目录 Pandas 函数方法汇总一览查询(持续补充改进) 初衷 Pandas 最最常用函数罗列 Pandas 函数用法示例 初衷 NumPy.P ...

  3. Pandas使用方法

    Pandas使用方法 1 Pandas介绍 2008年WesMcKinney开发出的库 专门用于数据挖掘的开源python库 以Numpy为基础,借力Numpy模块在计算方面性能高的优势 基于matp ...

  4. python安装pandas模块-python安装numpy和pandas的方法步骤

    最近要对一系列数据做同比比较,需要用到numpy和pandas来计算,不过使用python安装numpy和pandas因为linux环境没有外网遇到了很多问题就记下来了.首要条件,python版本必须 ...

  5. python最快的循环方法_【转】【Python效率】五种Pandas循环方法效率对比

    [Python效率]五种Pandas循环方法效率对比 - 文兄的文章 - 知乎 https://zhuanlan.zhihu.com/p/80880493 正文: 如果你使用过Python及Panda ...

  6. python如何安装panda数据库_在Pycharm中安装Pandas库方法(简单易懂)

    开发环境的搭建是一件入门比较头疼的事情,在上期的文稿基础上,增加一项Anaconda的安装介绍.Anaconda是Python的一个发行版本,安装好了Anaconda就相当于安装好了Python,并且 ...

  7. 循环下标_【转】【Python效率】五种Pandas循环方法效率对比

    [Python效率]五种Pandas循环方法效率对比 - 文兄的文章 - 知乎 https://zhuanlan.zhihu.com/p/80880493 正文: 如果你使用过Python及Panda ...

  8. 【转载】Python遍历pandas数据方法总结

    转载自脚本之家 https://www.jb51.net/article/134753.htm <Python遍历pandas数据方法总结> 贴4条常用的,其他的移步原帖链接. 列表解析方 ...

  9. -- str --() 方法

    str()方法是在数据被转换为str类型时自动调用的方法 class Person(object): def init(self, name, age): self.name = name self. ...

最新文章

  1. C_str的入门级notes
  2. R语言ggplot2可视化对图形进行纹理填充实战及启示:遇到问题首先去思考有没有现成的包(ggpattern)可以去解决这个问题
  3. 老王亲述:我的运维心路历程
  4. 数据运营者的福音:海量数据处理利器Greenplum
  5. GDCM:gdcm::XMLDictReader的测试程序
  6. nginx编译安装时添加echo模块
  7. 组织健康的路径:良性互动
  8. ERP项目实施记录01
  9. [WPF]有Focus(), 那Unfocus()呢?
  10. 不要为了“分库分表”而“分库分表”!
  11. Java基础之类加载器
  12. 物流管理源代码java_基于jsp的物流管理-JavaEE实现物流管理 - java项目源码
  13. 实现网页长截图的常见思路总结
  14. vue中清除浏览器缓存得方法
  15. Python求解平方怪圈问题
  16. Maven第7篇:聚合、继承、单继承问题详解
  17. ios应用音频与来电铃声冲突问题
  18. 鸿蒙音波萨顶顶,萨顶顶把古代论文唱成歌,撒贝宁评价:“最难合作的艺人之一”...
  19. win10更新后任务栏卡死 的原因和解决办法
  20. 【正点原子FPGA连载】 第七章 Verilog HDL语法 摘自【正点原子】DFZU2EG/4EV MPSoC 之FPGA开发指南V1.0

热门文章

  1. 联想微型计算机b540,联想B540一体机升级CPU 加内存
  2. 计算机卡慢解决方法,电脑很卡怎么办,详细教您电脑很卡很慢应该怎么解决
  3. windows7 安装 choco
  4. 网页中嵌入QQ和邮箱
  5. 目标检测的Tricks | 【Trick13】使用kmeans与遗传算法聚类anchor
  6. C语言(二):数据类型
  7. Windows提权基本原理,各位表哥了解下!
  8. 【论文】b站 - 读论文的麦小哲 学习笔记
  9. protobuf引入不同包下的proto文件
  10. Vue.js项目实战开发(4)- 必掌握知识点 - #博学谷IT学习技术支持#