京公网安备 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 ...
2026-07-24在数据分析、业务建模与数字化运营体系中,原始业务数据普遍存在缺失、重复、异常、口径不一致等质量问题,直接用于分析与建模会 ...
2026-07-24 很多数据分析师能熟练计算均值、标准差,但当被问到“如何用一张图让业务方3秒内看懂核心结论”“面对不同数据类型该怎么选 ...
2026-07-24在数据驱动的精细化运营体系中,指标是业务判断、效果复盘、策略优化的核心依据。随着企业数据化程度提升,指标数量持续膨胀,但 ...
2026-07-23在用户运营与产品增长体系中,留存是衡量产品真实价值与用户粘性的核心标尺,也是决定用户生命周期价值、获客投产比的底层因素。 ...
2026-07-23 很多数据分析师精通Excel、SQL、Python等工具,但当被问到“面对一个具体的业务问题,该用什么分析方法”“描述性分析和诊断 ...
2026-07-23【核心关键词】埋点、产品、互联网、数据库、决策、数据分析、产品经理、商业模式、移动互联网、指标体系、运营模块、大数据平 ...
2026-07-22在高并发、大数据量的业务系统中,单表数据量达到千万级甚至亿级后,会出现查询性能骤降、索引维护成本飙升、存储扩容困难等问题 ...
2026-07-22 很多企业团队并非缺乏指标,而是陷入“指标失控”:仪表盘上堆满实时跳动的数据,却无法回答“当前瓶颈在哪、下一步该做什么 ...
2026-07-22在金融风控、企业运营、行业研究等数据分析场景中,大量数据以面板数据形态存在:例如多家分支机构连续多个季度的风险指标、多位 ...
2026-07-21 很多数据分析师每天都在计算指标、制作报表,但当被问到“什么叫指标数据元”“指标数据标准包含哪些核心维度”“指标数据质 ...
2026-07-21一、活动介绍 2026暑期CDA备考冲刺季,为想利用假期拿证的你量身打造。考点胶囊内容搭配多重硬核福利,让你在旅行、实习、居家 ...
2026-07-21金融行业的运营风险贯穿业务全流程,涵盖交易欺诈、操作违规、流程漏洞、合规偏差、客户信用异常等多元场景,是银行、保险、证券 ...
2026-07-17财产保险作为金融行业的核心板块,涵盖车险、家财险、责任险、企财险等多元品类,是个人与企业抵御财产风险、经营风险的重要保障 ...
2026-07-17 很多数据分析师能熟练写SQL、做透视表,但当被问到“数据是从哪里来的?经过哪些加工才进入数据仓库?ETL具体做了什么?”时 ...
2026-07-17【核心关键词】模块、餐饮、客户、门店、企业、订单、供应链、多样化、产品、生产计划、数据分析、生产管理、物料管理、业务分 ...
2026-07-16在数字化分析时代,原始数据本身不具备业务价值,只有通过科学的统计学方法加工、拆解、验证与解读,才能挖掘数据背后的规律、差 ...
2026-07-16 很多数据分析师能熟练地写SQL、做透视表、算描述性统计,但当被问到“如何预测用户流失概率”“如何归因销量下滑的关键因素 ...
2026-07-16在描述性统计分析、数据预处理、异常值排查与多组数据分布对比工作中,箱线图(Box Plot)是应用最广泛的可视化与统计工具之一。 ...
2026-07-15在企业数据存储、业务统计与数据分析工作中,绝大多数业务数据都带有时间维度属性,例如订单创建时间、用户注册时间、支付完成时 ...
2026-07-15