首页 > 其他分享 >五.pandas常见操作

五.pandas常见操作

时间:2024-03-13 15:59:50浏览次数:25  
标签:df 常见 str apply 字符串 操作 data pandas

目录

五.pandas常见操作

1.pandas处理字符串

以上演示

1-大小写转换

2-去空格(两边) .str.strip()

3-切割

4-连接 .str.cat()

5-空格检测 .str.contains(" ")

6-替换

7-count()--返回元素出现次数

8-repeat()

2.查询操作

2.1 query(" ")

2.2 isin()

2.3 apply()

3.缺失值处理

演示代码

3.1 dropna()

3.2 fillna()


五.pandas常见操作


1.pandas处理字符串

Pandas 提供了一系列的字符串函数,因此能够很方便地对字符串进行处理。

函数名称函数功能和描述
lower()将的字符串转换为小写。
upper()将的字符串转换为大写。
len()得出字符串的长度。
strip()去除字符串两边的空格(包含换行符)。
split()用指定的分割符分割字符串。
cat(sep="")用给定的分隔符连接字符串元素。
contains(pattern)如果空子字串包含在元素中,则为每个元素返回一个布尔值 True,否则为 False。
replace(a,b)将值 a 替换为值 b。
count(pattern)返回每个字符串元素出现的次数。
findall(pattern)以列表的形式返出现的字符串。
isnumeric()返回布尔值,检查 Series 中组成每个字符串的所有字符是否都为数字。
repeat(value)以指定的次数重复每个元素。
find(pattern)返回字符串第一次出现的索引位置.

以上演示

1-大小写转换

import pandas as pd
a=pd.DataFrame({"name":['cao','WC','bibi'],"age":[10,20,30]})
print(a)
# 将name列的小写转换为大写.
a['name'].str.upper()

2-去空格(两边) .str.strip()

3-切割

4-连接 .str.cat()

5-空格检测 .str.contains(" ")

6-替换

7-count()--返回元素出现次数

a['name'].str.count('i')

8-repeat()

2.查询操作

2.1 query(" ")

df_data = pd.DataFrame(
    {"demo":["python","java","php","javascript"],
     "A":[10,11,11,12],
     "B":[8,15,11,13],
     "C":[12,12,14,15],
     "D":[11,13,15,11],
    })
print(df_data)
# 按条件筛选
# df_data.query("(A>10) and (B>12)")
​
​
# 筛选指定列
# df_data.query("(A>10) & (B>12)")[["demo","C","D"]]
​
# 筛选某一列
# df_data[df_data["demo"] == "python"]
# df_data.query('demo == "python"')
​

2.2 isin()

2.3 apply()

apply 函数是 pandas 库中 DataFrameSeries 对象的一个方法,它允许你对这些对象中的数据应用一个函数

df_data = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4.000023, 5.000021, 6.000054],
    'C': [7, 8, 9]
})
df_data
​
# 对每一列进行求和操作
df_data.apply(lambda x:x.sum(),axis="index")
​
# 对每一行进行求和操作
df_data.apply(lambda x:x.sum(),axis="columns")
​
​
df_data.apply(lambda x:x.sum()-x.max(),axis="index")
#mean()求均值---对每一列求均值。
df_data.apply(lambda x:x.mean(),axis="index")
​
# map关系映射
# B列保留两位小数
df_data["B"].map(lambda x:"%.2f"%x)

3.缺失值处理

演示代码

df_data = pd.DataFrame({
    "姓名":["张三","李四","王五","赵六"],
    "性别":["男",np.nan,"男","男"],
    "身高":[180,175,178,np.nan],
},index=[1,3,5,6])
df = df_data.reindex([1,2,3,4,5,6])

3.1 dropna()

DataFrame.dropna(axis=0, how=‘any’, thresh=None, subset=None, inplace=False)

  • axis:默认为0,表示删除行还是列,也可以用“index”和“columns”表示

  • how:{‘any’, ‘all’}, 默认为 ‘any’;any表示只要该行(列)出现空值就删除整行(列),all表示整行(列)都出现空值才会删除整行(列)

  • thresh:表示删除非空值小于thresh个数时删除

  • subset:列表类型,表示哪些列里有空值才删除行或列

# 检查缺失值
df.isnull()
# 检查某列缺失值
df["姓名"].isnull()
​
# 删除缺失值
df.dropna(thresh=2)
# 全部为空时删除
df.dropna(axis="index",how="all")
​
# 指定列进行空值删除
df.dropna(subset=["身高"])
​

3.2 fillna()

fillna()的作用是填充缺失值。

# 常量填充缺失值
df.fillna(0)
​
# 计算填充
df["身高"].fillna(df["身高"].mean())

标签:df,常见,str,apply,字符串,操作,data,pandas
From: https://blog.csdn.net/2303_80857229/article/details/136682699

相关文章

  • DevOps-Jenkins-CD持续交付操作
    基于Git参数构建之前是默认拉取最新提交代码构建,实际中不适用,需要通过打标签选择发布相应版本打开Jenkins任务设置,勾选参数化构建过程>选择Git参数(这里是GitParameter插件的作用)设置标识名称(记住它,下面的构建步骤需要添加设置这个变量),描述随意,参数类型基于标签默认......
  • 如何系统的学习Python——文件操作
    在Python中,文件操作是一项常见的任务,用于读取和写入文件。下面简要介绍Python中的文件处理(FileHandling)操作:打开文件(OpenaFile):要打开一个文件,可以使用内建的open()函数。open()函数接受文件路径和打开模式作为参数。#打开一个文件以供读取file_path="example.......
  • 终端安全三要素:芯片、操作系统、应用软件缺一不可
    终端安全问题一直以来都备受关注,随着科技的不断发展,终端设备不仅在数量上呈现爆发式增长,而且在功能和复杂性上也不断提升。为了确保终端设备的安全,我们需要从芯片级别到应用软件层面采取全面的防御策略。01.芯片层面的安全防御1.芯片设计与硬件防护芯片是终端设备的核心,其设......
  • 一些常见的shell问题和答案
    什么是Shell脚本?它有什么作用?Shell脚本是一种用Shell语言编写的脚本文件,用于自动化执行一系列命令和操作。它可以用于系统管理、任务自动化、数据处理等各种用途。如何在Shell脚本中定义变量?如何使用变量?在Shell脚本中,可以使用变量名=值的形式来定义变量,例如name="John"......
  • 黑马程序员JavaWeb(2023)课程学习过程中会遇到的操作小问题
    问题一:根据视频创建好的vue项目框架,在下次打开该项目时,在左下角未显示"EMP脚本",此时解决办法如下解决方法1:首先检查下图所示指向位置是否打勾(点击资源管理器右侧的三点),若没有勾上,勾上后即可看到左下角出现"EMP脚本"解决方法2:点击一下项目里面的package.json(如下图),即可解决......
  • 01-列表操作-使用slice()命名切片,增强程序可读及可维护性,兼使用indices()方法,防止出现
    程序中的切片,使用原始的索引访问时,如果数量过多,时间久了,就会导致难以阅读和维护。但使用slice()函数,创建【命名切片】后,赋予了切片与现实相近的名称,让程序更容易理解。同时,slice类中的indices方法,返回start,stop,step,3个值组成的元组。并且indices()对3个值进行自动调整,确......
  • 常见的html标签
    (1)标题标签:<h1>-<h6>,从大到小的六个级别。(2)段落标签:<p>,定义段落。(3)链接标签:<a>,定义超链接。(4)图像标签:<img>,插入图像。(5)列表标签:<ul>和<li>,创建无序列表<ol>和<li>,创建有序列表(6)表格标签:<table>,定义表格<tr>,定义表格行<th>,定义表头单元格<td&g......
  • CYQ.Data 操作 Redis 性能测试:对比 StackExchange.Redis
    前言:前几天,点开自己的博客,看了一下CYQ.DataV5系列 都有哪些文章,发现了一篇2019年写的:CYQ.Data对于分布式缓存Redis、MemCache高可用的改进及性能测试,于是点进去看了看。感觉文章中有些表述存有问题,不过不是重点。重点,看了里面的测试结论,如果四五年过去了,CYQ.Data 低调的......
  • vue使用Echarts常见警告处理方法
    【警告一】[ECharts]DEPRECATED:textStylehierarchyinlabelhasbeenremovedsince4.0.AlltextStylepropertiesareconfiguredinlabeldirectlynow.这个警告信息是因为你在使用ECharts时,使用了旧版本的配置方式,即在label的配置项中使用了textStyle层级来设......
  • 工作中用到的一些git操作(持续更新)
    绑定远程gitgitremoteaddupstreamhttps://xxx.gitgitpullupstreammaster 通过命令指定upstream:比如,当前代码仓跟踪了两个upstream:$gitremote-vnisssh://[email protected](fetch)nisssh://[email protected](push)originssh://[email protected](fetch)originssh:......