Python大数据之pandas快速入门(二)

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
简介: Python大数据之pandas快速入门(二)

3. DataFrame 的行列标签和行列位置编号

3.1 DataFrame 的行标签和列标签

1)如果所示,分别是 DataFrame 的行标签和列标签

2)获取 DataFrame 的行标签

# 获取 DataFrame 的行标签
china.index

3)获取 DataFrame 的列标签

# 获取 DataFrame 的列标签
china.columns

4)设置 DataFrame 的行标签

# 注意:DataFrame设置行标签时,并不会改变原来的DataFrame,而是返回的副本
china_df = china.set_index('year')

3.2 DataFrame 的行位置编号和列位置编号

DataFrame 除了行标签和列标签之外,还具有行列位置编号。

行位置编号:从上到下,第1行编号为0,第二行编号为1,…,第n行编号为n-1

列位置编号:从左到右,第1列编号为0,第二列编号为1,…,第n列编号为n-1

注意:默认情况下,行标签和行位置编号是一样的。

4. DataFrame 获取指定行列的数据

以下示例都使用加载的 gapminder.tsv 数据集进行操作,注意将 year 这一列设置为行标签。

4.1 loc函数获取指定行列的数据

基本格式

语法 说明
df.loc[[行标签1, ...], [列标签1, ...]] 根据行标签和列标签获取对应行的对应 列的数据,结果为:DataFrame
df.loc[[行标签1, ...]] 根据行标签获取对应行的所有列的数据 结果为:DataFrame
df.loc[:, [列标签1, ...]] 根据列标签获取所有行的对应列的数据 结果为:DataFrame
df.loc[行标签] 1)如果结果只有一行,结果为:Series 2)如果结果有多行,结果为:DataFrame
df.loc[[行标签]] 无论结果是一行还是多行,结果为DataFrame
df.loc[[行标签], 列标签] 1)如果结果只有一列,结果为:Series, 行标签作为 Series 的索引标签 2)如果结果有多列,结果为:DataFrame
df.loc[行标签, [列标签]] 1)如果结果只有一行,结果为:Series, 列标签作为 Series 的索引标签 2)如果结果有多行,结果为DataFrame
df.loc[行标签, 列标签] 1)如果结果只有一行一列,结果为单个值 2)如果结果有多行一列,结果为:Series, 行标签作为 Series 的索引标签 3)如果结果有一行多列,结果为:Series, 列标签作为 Series 的索引标签 4)如果结果有多行多列,结果为:DataFrame

演示示例

示例1:获取行标签为 1952, 1962, 1972 行的 country、pop、gdpPercap 列的数据
示例2:获取行标签为 1952, 1962, 1972 行的所有列的数据
示例3:获取所有行的 country、pop、gdpPercap 列的数据
示例4:获取行标签为 1957 行的所有列的数据
示例5:获取行标签为 1957 行的 lifeExp 列的数据

示例实现

1)示例1:获取行标签为 1952, 1962, 1972 行的 country、pop、gdpPercap 列的数据

# 示例1:获取行标签为 1952, 1962, 1972 行的 country、pop、gdpPercap 列的数据
china_df.loc[[1952, 1962, 1972], ['country', 'pop', 'gdpPercap']]

2)示例2:获取行标签为 1952, 1962, 1972 行的所有列的数据

# 示例2:获取行标签为 1952, 1962, 1972 行的所有列的数据
china_df.loc[[1952, 1962, 1972]]

3)示例3:获取所有行的 country、pop、gdpPercap 列的数据

# 示例3:获取所有行的 country、pop、gdpPercap 列的数据
china_df.loc[:, ['country', 'pop', 'gdpPercap']]

4)示例4:获取行标签为 1957 行的所有列的数据

# 示例4:获取行标签为 1957 行的所有列的数据
china_df.loc[1957]

# 示例4:获取行标签为 1957 行的所有列的数据
china_df.loc[[1957]]

5)示例5:获取行标签为 1957 行的 lifeExp 列的数据

# 示例5:获取行标签为 1957 行的 lifeExp 列的数据
china_df.loc[[1957], 'lifeExp']
china_df.loc[1957, ['lifeExp']]
china_df.loc[1957, 'lifeExp']

4.2 iloc函数获取指定行列的数据

基本格式

语法 说明
df.iloc[[行位置1, ...], [列位置1, ...]] 根据行位置和列位置获取对应行的对应 列的数据,结果为:DataFrame
df.iloc[[行位置1, ...]] 根据行位置获取对应行的所有列的数据 结果为:DataFrame
df.iloc[:, [列位置1, ...]] 根据列位置获取所有行的对应列的数据 结果为:DataFrame
df.iloc[行位置] 结果只有一行,结果为:Series
df.iloc[[行位置]] 结果只有一行,结果为:DataFrame
df.iloc[[行位置], 列位置] 结果只有一行一列,结果为:Series, 行标签作为 Series 的索引标签
df.iloc[行位置, [行位置]] 结果只有一行一列,结果为:Series, 列标签作为 Series 的索引标签
df.iloc[行位置, 行位置] 结果只有一行一列,结果为单个值

演示示例

示例1:获取行位置为 0, 2, 4 行的 0、1、2 列的数据
示例2:获取行位置为 0, 2, 4 行的所有列的数据
示例3:获取所有行的列位置为 0、1、2 列的数据
示例4:获取行位置为 1 行的所有列的数据
示例5:获取行位置为 1 行的列位置为 2 列的数据

示例实现

1)示例1:获取行位置为 0, 2, 4 行的 0、1、2 列的数据

# 示例1:获取行位置为 0, 2, 4 行的 0、1、2 列的数据
china_df.iloc[[0, 2, 4], [0, 1, 2]]

2)示例2:获取行位置为 0, 2, 4 行的所有列的数据

# 示例2:获取行位置为 0, 2, 4 行的所有列的数据
china_df.iloc[[0, 2, 4]]

3)示例3:获取所有行的列位置为 0、1、2 列的数据

# 示例3:获取所有行的列位置为 0、1、2 列的数据
china_df.iloc[:, [0, 1, 2]]

4)示例4:获取行位置为 1 行的所有列的数据

# 示例4:获取行位置为 1 行的所有列的数据
china_df.iloc[1]

# 示例4:获取行位置为 1 行的所有列的数据
china_df.iloc[[1]]

5)示例5:获取行位置为 1 行的列位置为 2 列的数据

# 示例5:获取行位置为 1 行的列位置为 2 列的数据
china_df.iloc[[1], 2]
china_df.iloc[1, [2]]
china_df.iloc[1, 2]

4.3 loc和iloc的切片操作

基本格式

语法 说明
df.loc[起始行标签:结束行标签, 起始列标签:结束列标签] 根据行列标签范围获对应行的对应列的数据,包含起始行列标签和结束行列标签
df.iloc[起始行位置:结束行位置, 起始列位置:结束列位置] 根据行列标签位置获对应行的对应列的数据,包含起始行列位置,但不包含结束行列位置

演示示例

示例1:获取 china_df 中前三行的前三列的数据,分别使用上面介绍的loc和iloc实现

示例实现

1)示例1:获取 china_df 中前三行的前三列的数据,分别使用上面介绍的loc和iloc实现

# 示例1:获取 china_df 中前三行的前三列的数据,分别使用上面介绍的loc和iloc实现
china_df.loc[1952:1962, 'country':'lifeExp']
china_df.iloc[0:3, 0:3]

4.4 [] 语法获取指定行列的数据

基本格式

语法 说明
df[['列标签1', '列标签2', ...]] 根据列标签获取所有行的对应列的数据,结果为:DataFrame
df['列标签'] 根据列标签获取所有行的对应列的数据 1)如果结果只有一列,结果为:Series, 行标签作为 Series 的索引标签 2)如果结果有多列,结果为:DataFrame
df[['列标签']] 根据列标签获取所有行的对应列的数据,结果为:DataFrame
df[起始行位置:结束行位置] 根据指定范围获取对应行的所有列的数据,不包括结束行位置

演示示例

示例1:获取所有行的 country、pop、gdpPercap 列的数据
示例2:获取所有行的 pop 列的数据
示例3:获取前三行的数据
示例4:从第一行开始,每隔一行获取一行数据,一共获取3行

示例实现

1)示例1:获取所有行的 country、pop、gdpPercap 列的数据

# 示例1:获取所有行的 country、pop、gdpPercap 列的数据
china_df[['country', 'pop', 'gdpPercap']]

2)示例2:获取所有行的 pop 列的数据

# 示例2:获取所有行的 pop 列的数据
china_df['pop']

# 示例2:获取所有行的 pop 列的数据
china_df[['pop']]

3)示例3:获取前三行的数据

# 示例3:获取前三行的数据
china_df[0:3]

4)示例4:从第一行开始,每隔一行获取一行数据,一共获取3行

# 示例4:从第一行开始,每隔一行获取一行数据,一共获取3行
china_df[0:6:2]

总结

  • 能够知道 DataFrame 和 Series 数据结构
  • 能够加载 csv 和 tsv 数据集
  • 能够区分 DataFrame 的行列标签和行列位置编号
  • 能够获取 DataFrame 指定行列的数据
  • loc
  • iloc
  • loc和iloc的切片操作
  • []


相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
打赏
0
0
0
0
111
分享
相关文章
|
1月前
|
python pandas学习(一)
该代码段展示了四个主要操作:1) 删除指定列名,如商品id;2) 使用正则表达式模糊匹配并删除列,例如匹配订单商品名称1的列;3) 将毫秒级时间戳转换为带有时区调整的日期时间格式,并增加8小时以适应本地时区;4) 将列表转换为DataFrame后保存为Excel文件,文件路径和名称根据变量拼接而成。
29 3
Pandas高级数据处理:大数据集处理
Pandas 是强大的 Python 数据分析库,但在处理大规模数据集时可能遇到性能瓶颈和内存不足问题。本文介绍常见问题及解决方案,如分块读取、选择性读取列、数据类型优化、避免不必要的副本创建等技巧,并通过代码示例详细解释。同时,针对 `MemoryError`、`SettingWithCopyWarning` 和 `DtypeWarning` 等常见报错提供解决方法,帮助读者更高效地处理大数据集。
123 16
我的阿里云社区年度总结报告:Python、人工智能与大数据领域的探索之旅
我的阿里云社区年度总结报告:Python、人工智能与大数据领域的探索之旅
156 35
MaxFrame 产品评测:大数据与AI融合的Python分布式计算框架
MaxFrame是阿里云MaxCompute推出的自研Python分布式计算框架,支持大规模数据处理与AI应用。它提供类似Pandas的API,简化开发流程,并兼容多种机器学习库,加速模型训练前的数据准备。MaxFrame融合大数据和AI,提升效率、促进协作、增强创新能力。尽管初次配置稍显复杂,但其强大的功能集、性能优化及开放性使其成为现代企业与研究机构的理想选择。未来有望进一步简化使用门槛并加强社区建设。
204 7
MaxCompute MaxFrame评测 | 分布式Python计算服务MaxFrame(完整操作版)
在当今数字化迅猛发展的时代,数据信息的保存与分析对企业决策至关重要。MaxCompute MaxFrame是阿里云自研的分布式计算框架,支持Python编程接口、兼容Pandas接口并自动进行分布式计算。通过MaxCompute的海量计算资源,企业可以进行大规模数据处理、可视化数据分析及科学计算等任务。本文将详细介绍如何开通MaxCompute和DataWorks服务,并使用MaxFrame进行数据操作。包括创建项目、绑定数据源、编写PyODPS 3节点代码以及执行SQL查询等内容。最后,针对使用过程中遇到的问题提出反馈建议,帮助用户更好地理解和使用MaxFrame。
Python Pandas入门:行与列快速上手与优化技巧
Pandas是Python中强大的数据分析库,广泛应用于数据科学和数据分析领域。本文为初学者介绍Pandas的基本操作,包括安装、创建DataFrame、行与列的操作及优化技巧。通过实例讲解如何选择、添加、删除行与列,并提供链式操作、向量化处理、索引优化等高效使用Pandas的建议,帮助用户在实际工作中更便捷地处理数据。
62 2
技术评测:MaxCompute MaxFrame——阿里云自研分布式计算框架的Python编程接口
随着大数据和人工智能技术的发展,数据处理的需求日益增长。阿里云推出的MaxCompute MaxFrame(简称“MaxFrame”)是一个专为Python开发者设计的分布式计算框架,它不仅支持Python编程接口,还能直接利用MaxCompute的云原生大数据计算资源和服务。本文将通过一系列最佳实践测评,探讨MaxFrame在分布式Pandas处理以及大语言模型数据处理场景中的表现,并分析其在实际工作中的应用潜力。
147 2

热门文章

最新文章