前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >机器学习库:pandas

机器学习库:pandas

作者头像
Nowl
发布于 2024-01-18 12:03:16
发布于 2024-01-18 12:03:16
28100
代码可运行
举报
文章被收录于专栏:NowlNowl_AINowlNowl_AI
运行总次数:0
代码可运行

写在开头

机器学习中,我们除了关注模型的性能外,数据处理更是必不可少,本文将介绍一个重要的数据处理库pandas,将随着我的学习过程不断增加内容

基本数据格式

pandas提供了两种数据类型:Series和DataFrame,在机器学习中主要使用DataFrame,我们也重点介绍这个

DataFrame

dataframe是一个二维的数据结构,常用来处理表格数据

使用代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import pandas as pd


a = {"a": [1, 3, 5, 3], "b": [3, 4, 2, 1]}

p = pd.DataFrame(a, index=None)
print(p)

dataframe是一个二维表格,包含行与列的信息

数据选取

iloc

我觉得pandas里面选取数据的一个很通用的方法是iloc

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pd.iloc[行序号, 列序号]

iloc的参数用逗号隔开,前面是行序号,后面是列序号

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import pandas as pd


a = {"a": [1, 3, 5, 3], "b": [3, 4, 2, 1]}

p = pd.DataFrame(a, index=None)
print(p)
print("iloc示例:")
print(p.iloc[0, 0])
print(p.iloc[2, 0])

iloc也支持切片操作

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import pandas as pd


a = {"a": [1, 3, 5, 3], "b": [3, 4, 2, 1]}

p = pd.DataFrame(a, index=None)
print(p)
print("iloc切片:")
print(p.iloc[0:4, 0])

这会打印第一列的0到3行

数据描述

head

head可以查看指定前几行的值,这方便在处理一些大数据集时,我们可以只加载几列来了解数据集而不必加载整个数据集

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import pandas as pd


a = {"a": [1, 3, 5, 3], "b": [3, 4, 2, 1]}

p = pd.DataFrame(a, index=None)

print(p.head(2))

我们这里指定显示前2行,不指定默认值是前5行

describe

describe方法可以描述表格所有列的数字特征,中位数,平均值等

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import pandas as pd


a = {"a": [1, 3, 5, 3], "b": [3, 4, 2, 1]}

p = pd.DataFrame(a, index=None)

print(p.describe())

不会处理字符串值哦

数值统计函数value_counts

当我们有一个年龄列表,我们想知道不同年龄的数量分别有多少,这时就可以使用value_counts函数了,它可以统计某一列的值的数量

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import pandas as pd


df = pd.DataFrame({'name': ['a', 'b', 'c', 'd', 'e'],
                    'age': [17, 15, 15, 15, 17]})


print(df["age"].value_counts())

数据合并

设想一下,我们有一个员工姓名和工号的表格,我们还有一个员工姓名和性别的表格,我们想把这两个表通过员工姓名合在一起,怎么实现呢

表合并函数merge

merge函数可以指定以某一列来合并表格

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import pandas as pd


# 创建两个示例 DataFrame
df1 = pd.DataFrame({'name': ['A', 'B', 'C', 'D'],
                    'number': [12335, 23212, 33432, 44678]})

df2 = pd.DataFrame({'name': ['A', 'B', 'C', 'D'],
                    'sex': ['F', 'F', 'M', 'F']})

# 使用 merge 合并两个 DataFrame
merged_df = pd.merge(df1, df2, on='name')
print(merged_df)

on='name'指定函数以name这一列来合并表格

分组函数groupby

想象一个场景,一个表中每行记录了某个员工某日的工作时长,如下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import pandas as pd


df = pd.DataFrame({'str': ['a', 'a', 'b', 'b', 'a'],
                    '每日工作时长': [1, 2, 3, 4, 5]})

print(df)

当我们想要统计员工a的总时长该怎么办呢,我们要把a和b先分组,这就是groupby函数的作用

groupby函数的参数是决定根据哪一列来进行分组的

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import pandas as pd


df = pd.DataFrame({'str': ['a', 'a', 'b', 'b', 'a'],
                    '每日工作时长': [1, 2, 3, 4, 5]})


print(df.groupby("str"))
print(list(df.groupby("str")))

如上图所示,groupby函数返回的是一个分组对象,我们使用list函数把它转化成列表然后打印出来,可以看到成功分组了,我们接下来会讲解如何使用聚合函数求和

聚合函数agg

在上面的例子中我们已经分好了组,接下来我们使用agg函数来进行求和,agg函数接收的参数是一个函数,然后对调用方法的对象执行这个函数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import pandas as pd


df = pd.DataFrame({'str': ['a', 'a', 'b', 'b', 'a'],
                    '工作时长': [1, 2, 3, 4, 5]})


print(df.groupby("str").agg(sum))

我们这里给agg函数传入了求和函数,可以看到求出了两个员工的总工作时长

数据删除

在机器学习竞赛时,有时我们想删除一些无用特征,怎么实现删除无用特征的列呢?

drop

以上一节的员工表格为例,增添以下代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
merged_df = merged_df.drop(columns="number")
print(merged_df)

可以看到number列被删除了

drop删除多列

要想删除多列,仅需要将列的名字放在一个列表里

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
merged_df = merged_df.drop(columns=["number", "sex"])
print(merged_df)

注意:在使用drop时,如果只写df.drop()是没有用的,你必须像上面两个例子一样,将drop后的df表格赋值给原来的表格。

处理缺失值

查找缺失值

isnull可以查找是否有缺失值,配合sum函数可以统计每一列缺失值的数量

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import pandas as pd


a = {"a": [1, 3, np.NAN, 3], "b": [3, 4, 2, 1]}

p = pd.DataFrame(a, index=None)

print(p.isnull().sum())

填充缺失值

因为有些机器学习模型无法处理缺失值,我们必须将缺失值补充好,可以用0填充,也可以用平均值填充,代码如下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 0填充
print(p.fillna(0))
# 平均值填充
print(p.fillna(p["a"].mean()))
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-12-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Pandas非常用技巧汇总
注意:由于NaN的存在,B列初始的数据类型是float,如果要变成整数,使用astype转换即可。
致Great
2023/08/25
6180
Pandas库
通过这些基础知识和资源,你可以逐步深入学习Pandas,从而在数据分析领域游刃有余。
用户11315985
2024/10/16
1.2K0
Pandas库
Pandas
Pandas 是 Python 的核心数据分析支持库,提供了快速、灵活、明确的数据结构,旨在简单、直观地处理关系型、标记型数据。Pandas 的目标是成为 Python 数据分析实践与实战的必备高级工具,其长远目标是成为最强大、最灵活、可以支持任何语言的开源数据分析工具。经过多年不懈的努力,Pandas 离这个目标已经越来越近了。
爱编程的小明
2022/09/05
9.6K0
Pandas
用 Pandas 进行数据处理系列 二
获取行操作df.loc[3:6]获取列操作df['rowname']取两列df[['a_name','bname']] ,里面需要是一个 list 不然会报错增加一列df['new']=list([...])对某一列除以他的最大值df['a']/df['a'].max()排序某一列df.sorted_values('a',inplace=True,ascending=True) , inplace 表示排序的时候是否生成一个新的 dataFrame , ascending=True 表示升序,默认为升序,如果存在缺失的补值( Nan ),排序的时候会将其排在末尾
zucchiniy
2019/10/30
8.4K0
掌握Pandas库的高级用法数据处理与分析
在数据科学和机器学习领域,数据清洗和预处理是至关重要的步骤。Pandas库作为Python中最受欢迎的数据处理工具之一,提供了强大的功能来处理各种数据格式。本文将介绍Pandas的一些高级用法,帮助你更有效地进行数据清洗和预处理。
一键难忘
2024/05/09
5400
Pandas数据结构:Series与DataFrame
在数据分析领域,Python 的 Pandas 库因其强大的数据操作功能而广受欢迎。Pandas 提供了两种主要的数据结构:Series 和 DataFrame。本文将从基础概念出发,逐步深入探讨这两种数据结构的使用方法、常见问题及解决方案。
Jimaks
2024/12/17
3380
高手系列!数据科学家私藏pandas高阶用法大全 ⛵
如果你是数据科学家、数据分析师、机器学习工程师,或者任何 python 数据从业者,你一定会高频使用 pandas 这个工具库——它操作简单功能强大,可以很方便完成数据处理、数据分析、数据变换等过程,优雅且便捷。
ShowMeAI
2022/12/04
6.3K0
高手系列!数据科学家私藏pandas高阶用法大全 ⛵
python使用pandas的常用操作
Pandas 的名字来源于“Panel Data”和“Python Data Analysis Library”的缩写。它最初由 Wes McKinney 开发,旨在提供高效、灵活的数据操作和分析工具。Pandas 在数据科学、统计分析、金融、经济学等领域得到了广泛应用。
梦无矶小仔
2024/06/06
6080
python使用pandas的常用操作
Pandas在Python面试中的应用与实战演练
Pandas作为Python数据分析与数据科学领域的核心库,其熟练应用程度是面试官评价候选者专业能力的重要依据。本篇博客将深入浅出地探讨Python面试中与Pandas相关的常见问题、易错点,以及如何避免这些问题,同时附上代码示例以供参考。
Jimaks
2024/04/19
9020
50道练习实践学习Pandas!
原文地址:https://www.kesci.com/home/project/5ddc974ef41512002cec1dca
Datawhale
2020/02/14
3.9K0
Python开发之Pandas的使用
==值得注意的是,drop函数不会修改原数据,如果想直接对原数据进行修改的话,可以选择添加参数inplace = True或用原变量名重新赋值替换。==
MiChong
2020/09/24
3K0
50个超强的Pandas操作 !!
首先给出一个示例数据,是一些用户的账号信息,基于这些数据,这里给出最常用,最重要的50个案例。
JOYCE_Leo16
2024/03/22
1K0
Pandas常用的数据处理方法
本文的Pandas知识点包括: 1、合并数据集 2、重塑和轴向旋转 3、数据转换 4、数据聚合 1、合并数据集 Pandas中合并数据集有多种方式,这里我们来逐一介绍 1.1 数据库风格合并 数据库风格的合并指根据索引或某一列的值是否相等进行合并的方式,在pandas中,这种合并使用merge以及join函数实现。 先来看下面的例子: df1 = pd.DataFrame({'key':['b','b','a','c','a','a','b'],'data1':range(7)}) df2 = pd.Dat
石晓文
2018/04/11
8.6K0
Pandas常用的数据处理方法
Pandas数据处理与分析教程:从基础到实战
Pandas是一个开源的Python库,提供了高性能、易用和灵活的数据结构,用于数据处理和分析。它建立在NumPy之上,使得处理结构化数据更加简单和高效。Pandas的两个主要数据结构是Series和DataFrame,可以理解为NumPy数组的增强版。它们提供了更多的功能和灵活性,使得数据处理变得更加直观和方便。
全栈若城
2024/02/29
9490
Pandas数据处理与分析教程:从基础到实战
Pandas数据聚合:groupby与agg
在数据分析中,数据聚合是一项非常重要的操作。Pandas库提供了强大的groupby和agg功能,使得我们能够轻松地对数据进行分组和聚合计算。本文将从基础概念、常见问题、常见报错及解决方案等方面,由浅入深地介绍如何使用Pandas的groupby和agg方法,并通过代码案例进行详细解释。
Jimaks
2024/12/23
1.5K0
【无痛学Python】Pandas统计分析基础,看这一篇就够了!
Pandas是基于NumPy的数据分析模块,它提供了大量的数据分析会用到的工具,可以说Pnadas是Python能成为强大数据分析工具的重要原因之一。
Skrrapper
2025/06/10
1390
13个Pandas实用技巧,有点香 !
归纳整理了一些工作中常用到的pandas使用技巧,方便更高效地实现数据分析。文章很短,不用收藏就能Get~
Python数据科学
2020/06/22
1.1K0
数据分析 ——— pandas基础(四)
利用pandas来进行数据处理的方法太多了,在这里继续更新一下对缺失数据的处理,以及数据的分组,聚合函数的使用。
andrew_a
2019/08/16
1.2K0
Pandas进阶修炼120题,给你深度和广度的船新体验
本文为你介绍Pandas基础、Pandas数据处理、金融数据处理等方面的一些习题。
数据派THU
2020/07/17
6.3K0
pandas技巧4
本文中记录Pandas操作技巧,包含: 导入数据 导出数据 查看、检查数据 数据选取 数据清洗 数据处理:Filter、Sort和GroupBy 数据合并 常识 # 导入pandas import pandas as pd # axis参数:0代表行,1代表列 导入数据 pd.read_csv(filename) # 从CSV文件导入数据 pd.read_table(filename) # 从限定分隔符的文本文件导入数据 pd.read_excel(filename) # 从Excel文件导入数据
皮大大
2021/03/01
3.7K0
相关推荐
Pandas非常用技巧汇总
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验