Pandas-数据操作-字符串型(一):常用方法【str(自动过滤NaN值)、索引】

2024-09-02 01:58

本文主要是介绍Pandas-数据操作-字符串型(一):常用方法【str(自动过滤NaN值)、索引】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Pandas针对字符串配备的一套方法,使其易于对数组的每个元素进行操作。

一、str:通过str访问,且自动排除丢失/ NA值

通过str访问,且自动排除丢失/ NA值

  • 直接通过.str调用字符串方法
  • 可以对Series、Dataframe使用
  • 自动过滤NaN值
import numpy as np
import pandas as pd# 通过str访问,且自动排除丢失/ NA值
# 直接通过.str调用字符串方法
# 可以对Series、Dataframe使用
# 自动过滤NaN值s = pd.Series(['A', 'b', 'C', 'bbhello', '123', np.nan, 'hj'])
df = pd.DataFrame({'key1': list('abcdef'),'key2': ['hee', 'fv', 'w', 'hija', '123', np.nan]})
print("s = \n", s)
print('-' * 50)
print("df = \n", df)
print('-' * 200)print("s.str.count('b') = \n", s.str.count('b'))
print('-' * 50)
print("df['key2'].str.upper() = \n", df['key2'].str.upper())
print('-' * 200)# df.columns是一个Index对象,也可使用.str
df.columns = df.columns.str.upper()
print("df = \n", df)
print('-' * 200)

打印结果:

s = 
0          A
1          b
2          C
3    bbhello
4        123
5        NaN
6         hj
dtype: object
--------------------------------------------------
df = key1  key2
0    a   hee
1    b    fv
2    c     w
3    d  hija
4    e   123
5    f   NaN
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
s.str.count('b') = 0    0.0
1    1.0
2    0.0
3    2.0
4    0.0
5    NaN
6    0.0
dtype: float64
--------------------------------------------------
df['key2'].str.upper() = 0     HEE
1      FV
2       W
3    HIJA
4     123
5     NaN
Name: key2, dtype: object
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
df = KEY1  KEY2
0    a   hee
1    b    fv
2    c     w
3    d  hija
4    e   123
5    f   NaN
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Process finished with exit code 0

二、字符串索引

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

打印结果:

取第一个字符: data1 = s.str[0] = 0      A
1      b
2      C
3      b
4      1
5    NaN
6      h
dtype: object
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
取前两个字符: data2 = s.str[:2] = 0      A
1      b
2      C
3     bb
4     12
5    NaN
6     hj
dtype: object
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
data3 = df['key2'].str[:2] = 0     he
1     fv
2      w
3     hi
4     12
5    NaN
Name: key2, dtype: object
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Process finished with exit code 0

这篇关于Pandas-数据操作-字符串型(一):常用方法【str(自动过滤NaN值)、索引】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1128672

相关文章

SpringBoot分段处理List集合多线程批量插入数据方式

《SpringBoot分段处理List集合多线程批量插入数据方式》文章介绍如何处理大数据量List批量插入数据库的优化方案:通过拆分List并分配独立线程处理,结合Spring线程池与异步方法提升效率... 目录项目场景解决方案1.实体类2.Mapper3.spring容器注入线程池bejsan对象4.创建

PHP轻松处理千万行数据的方法详解

《PHP轻松处理千万行数据的方法详解》说到处理大数据集,PHP通常不是第一个想到的语言,但如果你曾经需要处理数百万行数据而不让服务器崩溃或内存耗尽,你就会知道PHP用对了工具有多强大,下面小编就... 目录问题的本质php 中的数据流处理:为什么必不可少生成器:内存高效的迭代方式流量控制:避免系统过载一次性

Python正则表达式匹配和替换的操作指南

《Python正则表达式匹配和替换的操作指南》正则表达式是处理文本的强大工具,Python通过re模块提供了完整的正则表达式功能,本文将通过代码示例详细介绍Python中的正则匹配和替换操作,需要的朋... 目录基础语法导入re模块基本元字符常用匹配方法1. re.match() - 从字符串开头匹配2.

C#实现千万数据秒级导入的代码

《C#实现千万数据秒级导入的代码》在实际开发中excel导入很常见,现代社会中很容易遇到大数据处理业务,所以本文我就给大家分享一下千万数据秒级导入怎么实现,文中有详细的代码示例供大家参考,需要的朋友可... 目录前言一、数据存储二、处理逻辑优化前代码处理逻辑优化后的代码总结前言在实际开发中excel导入很

MyBatis Plus实现时间字段自动填充的完整方案

《MyBatisPlus实现时间字段自动填充的完整方案》在日常开发中,我们经常需要记录数据的创建时间和更新时间,传统的做法是在每次插入或更新操作时手动设置这些时间字段,这种方式不仅繁琐,还容易遗漏,... 目录前言解决目标技术栈实现步骤1. 实体类注解配置2. 创建元数据处理器3. 服务层代码优化填充机制详

python获取指定名字的程序的文件路径的两种方法

《python获取指定名字的程序的文件路径的两种方法》本文主要介绍了python获取指定名字的程序的文件路径的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 最近在做项目,需要用到给定一个程序名字就可以自动获取到这个程序在Windows系统下的绝对路径,以下

JavaScript中的高级调试方法全攻略指南

《JavaScript中的高级调试方法全攻略指南》什么是高级JavaScript调试技巧,它比console.log有何优势,如何使用断点调试定位问题,通过本文,我们将深入解答这些问题,带您从理论到实... 目录观点与案例结合观点1观点2观点3观点4观点5高级调试技巧详解实战案例断点调试:定位变量错误性能分

Python中 try / except / else / finally 异常处理方法详解

《Python中try/except/else/finally异常处理方法详解》:本文主要介绍Python中try/except/else/finally异常处理方法的相关资料,涵... 目录1. 基本结构2. 各部分的作用tryexceptelsefinally3. 执行流程总结4. 常见用法(1)多个e

Java实现将HTML文件与字符串转换为图片

《Java实现将HTML文件与字符串转换为图片》在Java开发中,我们经常会遇到将HTML内容转换为图片的需求,本文小编就来和大家详细讲讲如何使用FreeSpire.DocforJava库来实现这一功... 目录前言核心实现:html 转图片完整代码场景 1:转换本地 HTML 文件为图片场景 2:转换 H

Java实现在Word文档中添加文本水印和图片水印的操作指南

《Java实现在Word文档中添加文本水印和图片水印的操作指南》在当今数字时代,文档的自动化处理与安全防护变得尤为重要,无论是为了保护版权、推广品牌,还是为了在文档中加入特定的标识,为Word文档添加... 目录引言Spire.Doc for Java:高效Word文档处理的利器代码实战:使用Java为Wo