京公网安备 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
CDA数据分析师 出品 作者:李诗怡 题目1 一家餐厅统计顾客的性别、年龄、消费金额等信息,在进行数据分析时,发现性别这一变量在 ...
2026-10-16核心资源推荐 CDA教材(2025):https://edu.cda.cn/goods/show/3151CDA模拟题(2025):https://edu.cda.cn/goods/show/2845CD ...
2026-10-16核心资源推荐 CDA教材(2025):https://edu.cda.cn/goods/show/3151CDA模拟题(2025):https://edu.cda.cn/goods/show/2845CD ...
2026-10-16一、为什么要区分这两种分布 在数据分析和统计学中,拿到一组数据后第一件事通常就是看它的分布形态。分布形态决定了你能用什么 ...
2026-10-15一、问题现象 在实际使用 Excel 透视表做数据分析时,经常会遇到这样的情况:数据源表格里明明新增了一行或一列金额数据,数据源 ...
2026-10-15核心资源推荐 CDA教材(2025):https://edu.cda.cn/goods/show/3151CDA模拟题(2025):https://edu.cda.cn/goods/show/2845CD ...
2026-10-15一、什么是预测式发货 预测式发货(Anticipatory Shipping)是亚马逊于2013年12月获得授权的一项美国专利(专利号 US 8,615,473 ...
2026-10-14一、SQL在金融量化体系中的定位 量化投资的本质是用数据驱动决策,而数据处理贯穿量化研究的全生命周期。从原始行情数据清洗、因 ...
2026-10-14核心资源推荐 CDA教材(2025):https://edu.cda.cn/goods/show/3151CDA模拟题(2025):https://edu.cda.cn/goods/show/2845CD ...
2026-10-14CDA数据分析师 出品 作者:李诗怡 四层结构 · 零件与房子 · 六大易错点 一、什么是指标体系 定义:指标体系是整套完整框架 ...
2026-10-13写在开头 先还原一个你大概率见过的场面。 立项会上有人说:我们得做用户画像。 于是团队关进会议室,白板写满便利贴,两小时后 ...
2026-10-13 很多数据分析师每天都在计算指标、制作报表,但当被问到“什么叫指标数据元”“指标数据标准包含哪些核心维度”“指标数据质 ...
2026-10-13在统计学与数据分析研究中,相关性分析分为数值变量分析与分类变量分析两大类。针对身高、销量、分数等连续数值变量,通常采用皮 ...
2026-10-12在Power BI可视化分析体系中,常规表格仅能展示枯燥的数值数据,存在数据对比不直观、强弱规律不突出、维度交叉分析低效等问题。 ...
2026-10-12 很多数据分析师能熟练写SQL、做透视表,但当被问到“数据是从哪里来的?经过哪些加工才进入数据仓库?ETL具体做了什么?”时 ...
2026-10-12在传统零售行业同质化竞争激烈、大众营销转化率持续走低的背景下,依托经验与直觉的粗放式营销逐渐失效。美国塔吉特百货(Target ...
2026-10-10随着智能客服、数字化服务、用户精细化运营的快速普及,传统零散、非标准化的客户服务数据与业务体系逐渐难以支撑高效服务治理。 ...
2026-10-10 很多数据分析师能熟练地写SQL、做透视表、算描述性统计,但当被问到“如何预测用户流失概率”“如何归因销量下滑的关键因素 ...
2026-10-10CDA数据分析师 出品 作者:李诗怡 定义区别 · 场景举例 · 指标分类 · 计算方法 知识体系总览 模块 包含内容 一、核 ...
2026-10-09在数据分析工作流中,业务数据大多存储在各类关系型数据库内,例如MySQL、PostgreSQL、SQLite等。Pandas是Python生态中主流的数 ...
2026-10-09