京公网安备 11010802034615号
经营许可证编号:京B2-20210330
如何用Python高效地学习数据结构
今天的每日一答,我们来看看如何高效地学习一门语言的数据结构,今天我们先看Python篇。
所谓数据结构,是指相互之间存在一种或多种特定关系的数据类型的集合。
Python在数据分析领域中,最常用的数据结构,莫过于DataFrame了,今天我们就介绍如何高效地学习DataFrame这种数据结构。
要学习好一种东西,最好给自己找一个目标,达到了这个目标,我们就是学好了。一般,我在学习一门新的语言的数据结构的时候,一般要求自己达到以下五个要求:
第一个问题:概念,这种数据结构的概念是什么呢?
第二个问题:定义,如何定义这种数据结构呢?
第三个问题:限制,使用这种数据结构,有什么限制呢?
第四个问题:访问,访问这种数据结构内的数据的方式是什么呢?
第五个问题:修改,如何对这种数据结构进行增加元素、删除元素以及修改元素呢?
好,今天我们就来回答一下以上五个问题。
第一个问题:概念,这种数据结构的概念是什么呢?
数据框是用于存储多行和多列的数据集合,下面我们使用一张图片,形象地讲解它的内部结构:
OK,这个就是数据框的概念了。
第二个问题:定义,如何定义这种数据结构呢?
DataFrame函数语法
DataFrame(columnsMap)
代码举例:
>>>df=DataFrame({
'age':Series([21,22,23]),
'name':Series(['KEN','John','JIMI'])
});
>>>df
age name
0 21 KEN
1 22 John
2 23 JIMI
OK,这个就是定义数据框DataFrame的方法了。
第三个问题:限制,使用这种数据结构,有什么限制呢?
一般而言,限制是对于这种数据结构是否只能存储某种数据类型,在Python的数据框中,允许存放多种数据类型,基本上对于默认的数据类型,没有任何限制。
第四个问题:访问,访问这种数据结构内的数据的方式是什么呢?
| 访问位置 | 方法 | 备注 |
| 访问列 | 变量名[列名] | 访问对应列 |
| 访问行 | 变量名[n:m] | 访问n行到m-1行的数据 |
| 访问行和列 | 变量名.iloc[n1:n2,m1:m2] | 访问n1到n2-1列,m1到m2-1行的数据 |
| 访问位置 | 变量名.at[n, 列名] | 访问n行,列位置 |
代码举例
>>>df['age']
0 21
1 22
2 23
Name:age,dtype:int64
>>>df[1:2]
age name
1 22 John
>>>df.iloc[0:1,0:2]
agename
0 21 KEN
>>>df.at[0,'name']
'KEN'
>>>df[['age','name']]
agename
021KEN
122John
223JIMI
>>>
第五个问题:修改,如何对这种数据结构进行增加元素、删除元素以及修改元素呢?
这个问题,我并没有在课程中跟大家讨论过,主要是为了避免大家觉得学习起来很难。
也因此,这篇博文到了这里才是真正的干货,之前的那些都是课程中出现过的内容了,哈哈,
修改包括:
1、修改列名,行索引
2、增加/删除/修改行
3、增加/删除/修改列
好,下面我们上代码:
df=DataFrame({
'age':Series([21,22,23]),
'name':Series(['KEN','John','JIMI'])
});
#1.1、修改列名
>>>df.columns
Index(['age','name'],dtype='object')
>>>df.columns=['age2','name2']
>>>df
age2name2
021KEN
122John
223JIMI
#1.2、修改行名
>>>df.index
Int64Index([0,1,2],dtype='int64')
>>>df.index=range(1,4)
>>>df.index
Int64Index([1,2,3],dtype='int64')
#2.1、删除行
>>>df.drop(1)
age2name2
222John
323JIMI
>>>df
age2name2
121KEN
222John
323JIMI
#注意,删除后的DataFrame需要一个变量来接收,并不会直接修改原来的DataFrame.
>>>newdf=df.drop(1);
>>>newdf
age2name2
222John
323JIMI
#2.2、删除列
>>>delnewdf['age2']
>>>newdf
name2
2John
3JIMI
#3.1、增加行
>>>df.loc[len(df)+1]=[24,"KENKEN"];
>>>df
age2name2
121KEN
222John
323JIMI
424KENKEN
#3.2、增加列
>>>df['newColumn']=[2,4,6,8];
>>>df
age2name2newColumn
121KEN2
222John4
323JIMI6
424KENKEN8
以上就是全部五个问题的答案了,通过自问自答这五个问题,我们就可以高效地学习某种数据结构了。
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
Python凭借简洁的语法、丰富的生态库,成为算法开发、数据处理、机器学习等领域的首选语言。但受限于动态类型、解释性执行的特性 ...
2026-04-03在深度学习神经网络中,卷积操作是实现数据特征提取的核心引擎,更是让模型“看懂”数据、“解读”数据的关键所在。不同于传统机 ...
2026-04-03当数字化转型从企业的“战略口号”落地为“生存之战”,越来越多的企业意识到,转型的核心并非技术的堆砌,而是数据价值的深度挖 ...
2026-04-03在日常办公数据分析中,数据透视表凭借高效的汇总、分组功能,成为Excel、WPS等办公软件中最常用的数据分析工具之一。其中,“计 ...
2026-04-02在数字化交互的全场景中,用户的每一次操作都在生成动态的行为轨迹——电商用户的“浏览商品→点击详情→加入购物车”,内容APP ...
2026-04-02在数字化转型深度推进的今天,企业数据已成为驱动业务增长、构建核心竞争力的战略资产,而数据安全则是守护这份资产的“生命线” ...
2026-04-02在数据驱动决策的浪潮中,数据挖掘与数据分析是两个高频出现且极易被混淆的概念。有人将二者等同看待,认为“做数据分析就是做数 ...
2026-04-01在数据驱动决策的时代,企业与从业者每天都会面对海量数据——电商平台的用户行为数据、金融机构的信贷风险数据、快消品牌的营销 ...
2026-04-01在数字化转型的浪潮中,企业数据已从“辅助运营的附属资源”升级为“驱动增长的核心资产”,而一套科学、可落地的企业数据管理方 ...
2026-04-01在数字化时代,每一位用户与产品的交互都会留下可追溯的行为轨迹——电商用户的浏览、加购、下单,APP用户的注册、登录、功能使 ...
2026-03-31在日常数据统计、市场调研、学术分析等场景中,我们常常需要判断两个分类变量之间是否存在关联(如性别与消费偏好、产品类型与满 ...
2026-03-31在CDA(Certified Data Analyst)数据分析师的职场实战与认证考核中,“可解释性建模”是核心需求之一——企业决策中,不仅需要 ...
2026-03-31多层感知机(MLP,Multilayer Perceptron)作为深度学习中最基础、最经典的神经网络模型,其结构设计直接决定了模型的拟合能力、 ...
2026-03-30在TensorFlow深度学习实战中,数据集的加载与预处理是基础且关键的第一步。手动下载、解压、解析数据集不仅耗时费力,还容易出现 ...
2026-03-30在CDA(Certified Data Analyst)数据分析师的日常工作中,“无监督分组、挖掘数据内在聚类规律”是高频核心需求——电商场景中 ...
2026-03-30机器学习的本质,是让模型通过对数据的学习,自主挖掘规律、实现预测与决策,而这一过程的核心驱动力,并非单一参数的独立作用, ...
2026-03-27在SQL Server数据库操作中,日期时间处理是高频核心需求——无论是报表统计中的日期格式化、数据筛选时的日期类型匹配,还是业务 ...
2026-03-27在CDA(Certified Data Analyst)数据分析师的能力体系与职场实操中,高维数据处理是高频且核心的痛点——随着业务场景的复杂化 ...
2026-03-27在机器学习建模与数据分析实战中,特征维度爆炸、冗余信息干扰、模型泛化能力差是高频痛点。面对用户画像、企业经营、医疗检测、 ...
2026-03-26在这个数据无处不在的时代,数据分析能力已不再是数据从业者的专属技能,而是成为了职场人、管理者、创业者乃至个人发展的核心竞 ...
2026-03-26