百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

一文搞定Pandas核心概念之DataFrame

liuian 2025-03-11 18:03 34 浏览


DataFrame概述

DataFrame 是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔型值)。DataFrame 既有行索引也有列索引,它可以被看做由 Series 组成的字典(共同用一个索引)。如下图所示:整个表格是DataFrame,每一列就是一个Series。关于Series可以参考文章: 一文搞定Pandas核心概念之Series


DataFrame 构造方法如下:

pandas.DataFrame( data, index, columns, dtype, copy)

参数说明:

data:一组数据(ndarray、series, map, lists, dict 等类型)。

index:索引值,或者可以称为行标签。

columns:列标签,默认为 RangeIndex (0, 1, 2, …, n) 。

dtype:数据类型。

copy:拷贝数据,默认为 False。

DataFrame获取元素的经典实例

实例1

import pandas as pd
data = [['kevin',40],['mike',40],['tony',50]]
df = pd.DataFrame(data,columns=['name','Age'])
print(df)

输出

name Age

0 kevin 40

1 mike 40

2 tony 50

实例2

我们还可以使用字典创建DataFrame

data = [{'a': 40, 'b': 40},{'c': 50},{'a': 50, 'b': 10, 'c': 20}]
df = pd.DataFrame(data)
print (df)

a b c

0 40.0 40.0 NaN

1 NaN NaN 50.0

2 50.0 10.0 20.0

注意这里没有对应的部分数据为 NaN。

实例3

我们可以改变用如下方法改变index的值,代码如下:

data1 = [['kevin',40],['mike',40],['tony',50]]
df = pd.DataFrame(data1,columns=['name','Age'],index = ["a", "b", "c"])
print(df)

输出

name Age

a kevin 40

b mike 40

c tony 50

默认索引值是0 1 2

实例4

Pandas 可以使用 loc 属性返回指定索引对应到某一行:

例如获取上面例子中kevin的值,可以通过如下方法

print(df.loc["a","name"])

kevin

实例5

获取a 行所有的值可以使用

print(df.loc["a"])

输出

name kevin

Age 40

Name: a, dtype: object

实例6

获取name列所有的值可以使用

print(df.loc[:,"name"])

输出

a kevin

b mike

c tony

Name: name, dtype: object

实例7

获取index a和b 所在的name列的值可以使用

print(df.loc["a":"b","name"])

输出

a kevin

b mike

Name: name, dtype: object

API的概要说明

数据清理

  • df.columns = ['a','b','c']:重命名列名
  • pd.isnull():检查DataFrame对象中的空值,并返回一个Boolean数组
  • pd.notnull():检查DataFrame对象中的非空值,并返回一个Boolean数组
  • df.dropna():删除所有包含空值的行
  • df.dropna(axis=1):删除所有包含空值的列
  • df.dropna(axis=1,thresh=n):删除所有小于n个非空值的行
  • df.fillna(x):用x替换DataFrame对象中所有的空值
  • s.astype(float):将Series中的数据类型更改为float类型
  • s.replace(1,'one'):用‘one’代替所有等于1的值
  • s.replace([1,3],['one','three']):用'one'代替1,用'three'代替3
  • df.rename(columns=lambda x: x + 1):批量更改列名
  • df.rename(columns={'old_name': 'new_ name'}):选择性更改列名
  • df.set_index('column_one'):更改索引列
  • df.rename(index=lambda x: x + 1):批量重命名索引

数据处理:Filter、Sort和GroupBy

  • df[df[col] > 0.5]:选择col列的值大于0.5的行
  • df.sort_values(col1):按照列col1排序数据,默认升序排列
  • df.sort_values(col2, ascending=False):按照列col1降序排列数据
  • df.sort_values([col1,col2], ascending=[True,False]):先按列col1升序排列,后按col2降序排列数据
  • df.groupby(col):返回一个按列col进行分组的Groupby对象
  • df.groupby([col1,col2]):返回一个按多列进行分组的Groupby对象
  • df.groupby(col1)[col2]:返回按列col1进行分组后,列col2的均值
  • df.pivot_table(index=col1, values=[col2,col3], aggfunc=max):创建一个按列col1进行分组,并计算col2和col3的最大值的数据透视表
  • df.groupby(col1).agg(np.mean):返回按列col1分组的所有列的均值
  • data.apply(np.mean):对DataFrame中的每一列应用函数np.mean
  • data.apply(np.max,axis=1):对DataFrame中的每一行应用函数np.max

数据合并

  • df1.append(df2):将df2中的行添加到df1的尾部
  • df.concat([df1, df2],axis=1):将df2中的列添加到df1的尾部
  • df1.join(df2,on=col1,how='inner'):对df1的列和df2的列执行SQL形式的join

数据统计

  • df.describe():查看数据值列的汇总统计
  • df.mean():返回所有列的均值
  • df.corr():返回列与列之间的相关系数
  • df.count():返回每一列中的非空值的个数
  • df.max():返回每一列的最大值
  • df.min():返回每一列的最小值
  • df.median():返回每一列的中位数
  • df.std():返回每一列的标准差

相关推荐

网易电脑版登录入口(main.163网易电脑版登录入口)

http://mail.163.com步骤一:输入邮箱官网网址http://mail.163.com/打开163邮箱登录入口界面。步骤二:输入已有的邮箱账号、密码,点击登录即可。步骤三:如果没有邮箱账...

qq截图快捷键不能用(qq快捷截图不能使用)

笔记本上面的PrtSC能用么,是不是需要用Fn+这个按键才能截屏呀。有些机器在bios下有Fn快捷键设置,你需要把这个功能键开启或者关闭后才能单独点击使用。或者你使用Fn+PrtSC在试试,另外,何必...

大地影视中文第二页的背景故事

大地影院通常会有明显的入口标识,你可以根据影院外部的建筑结构和指示牌来找到入口。一般来说,大地影院的入口可能位于建筑的主立面或者侧面,有时也可能位于地下停车场或者商场内部。当你到达影院所在的建筑时,可...

win10共享打印机需要密码(win10共享打印机需要密码吗)

共享打印机需要输入用户名和密码,该如何操作,下面给大家来介绍下。1、首先打开电脑的控制面板,点击管理工具。2、然后在打开的管理工具窗口中,点击本地安全策略。3、接着在打开的页面中,点击本地策略。4、然...

系统引导启动项怎么设置(系统引导按哪个键)

如果您想在计算机启动时添加系统启动引导选项,可以按照以下步骤进行操作:1.打开“运行”窗口,可以通过快捷键Win+R打开“运行”窗口。2.在“运行”窗口中输入“msconfig”命令,并点击“...

win10录屏快捷键ctrl+alt+(win10录屏功能快捷键)

答,笔记本电脑录屏快捷键是ctrl+alt+s。绝大多数人录制屏幕时,第一个想到的就是电脑自带的录屏功能,比较的方便快捷。这种方法运用起来时非常简单的,只需在键盘上同时按下“ctrl+alt+s”键就...

壁纸下载(壁纸下载安装)

回答如下:要下载电视屏保相册,您需要先找到适用于您的电视的屏保应用程序。这些应用程序可能会根据您的电视品牌和型号而有所不同,您可以在电视的应用商店中搜索或查看电视制造商的网站以获取更多信息。一旦您找到...

木马病毒下载安装(木马病毒下载安装不实名认证)

现在1,你自己机器上下载个杀毒软件,安装之后不要删除安装包2,运行杀毒软件3,插入优盘,杀毒软件会自动扫描优盘发现病毒然后提示你4,选择处理/杀毒/清理这些字样5,把杀毒软件安装包复制到优盘6,右键优...

免费清理软件哪个最好最快(免费好用的清理垃圾软件)
  • 免费清理软件哪个最好最快(免费好用的清理垃圾软件)
  • 免费清理软件哪个最好最快(免费好用的清理垃圾软件)
  • 免费清理软件哪个最好最快(免费好用的清理垃圾软件)
  • 免费清理软件哪个最好最快(免费好用的清理垃圾软件)
手机cdr转jpg最简单的方法(手机cdr转换jpg)

cdr文件怎么转换成jpg,快来看下操作方法吧。方法/步骤1、打开电脑中的cdr软件,点击文件,打开,打开需要转换格式的cdr文件。2、点击菜单栏的文件,导出。3、打开导出对话框选择保存文件路径。4、...

xp永久激活工具(xp永久激活码)

如果你需要重置XP的激活器,你需要先打开“开始”菜单,然后选择“运行”。在运行对话框中,输入“regedit”,然后按回车键。这会打开注册表编辑器。在编辑器中,使用左侧面板来导航到“HKEY_LOCA...

cad2008激活序列号(激活cad的序列号)

1.首先运行“AutoCAD2008安装包”中的“Setup.exe”安装AutoCAD2008,安装过程需要十分钟左右;2.第一次运行AutoCAD2008时,请在注册界面输入序列号666-9...

自己可以重装电脑系统么(可以自己重装系统吗)

电脑自身也可以重装系统。1.电脑是一个可编程的设备,通过特定的步骤和操作,用户可以自行进行系统重装。2.重装系统的过程包括备份重要数据、获取系统安装介质、重新启动电脑进入安装界面、按照指引选择系统...

win11免费下载(win11正式版下载)
  • win11免费下载(win11正式版下载)
  • win11免费下载(win11正式版下载)
  • win11免费下载(win11正式版下载)
  • win11免费下载(win11正式版下载)
qq邮箱在哪里找账号(qq邮箱账号在qq里怎么找)
  • qq邮箱在哪里找账号(qq邮箱账号在qq里怎么找)
  • qq邮箱在哪里找账号(qq邮箱账号在qq里怎么找)
  • qq邮箱在哪里找账号(qq邮箱账号在qq里怎么找)
  • qq邮箱在哪里找账号(qq邮箱账号在qq里怎么找)