【Pandas数据分析3】数据提取

简介: 【Pandas数据分析3】数据提取

三、数据提取

1、按行提取

1.1 loc属性

以列名(columns)和行名(index)作为参数,当只有一个参数时,默认是行名,即抽取整行数据,包括所有列。

1.2 iloc属性

以行和列位置索引(即:0,1,2,…)作为参数,0表示第一行,1表示第二行,以此类推。

当只有一个参数时,默认是行索引,即抽取整行数据,包括所有列。

import pandas as pd
pd.set_option('display.unicode.east_asian_width', True)
data = [[45, 65, 100], [56, 45, 50], [67, 67, 67]]
index = ['张三', '李四', '王五']
columns = ['数学', '语文', '英语']
df = pd.DataFrame(data=data, index=index, columns=columns)
print(df)
print('-------------------------')
# 提取单行数据
print(df.loc['张三'])  # 行索引名称
print(df.iloc[0])  # 行索引编号
print('-------------------------')
# 提取多行数据
print(df.loc[['张三', '王五']])
print(df.iloc[[0, 2]])
print('-------------------------')
# 提取连续多行数据
print(df.loc['张三':'王五'])  # 行索引名称,包含王五
print(df.iloc[0:2])  # 行索引编号,不包含王五
print('-------------------------')
# iloc[start:stop:step]
print(df.iloc[1::])  # 起始为1,一直到末尾
print(df.iloc[::2])  # 起始为0,步长为2
数学  语文  英语
张三    45    65   100
李四    56    45    50
王五    67    67    67
-------------------------
数学     45
语文     65
英语    100
Name: 张三, dtype: int64
数学     45
语文     65
英语    100
Name: 张三, dtype: int64
-------------------------
      数学  语文  英语
张三    45    65   100
王五    67    67    67
      数学  语文  英语
张三    45    65   100
王五    67    67    67
-------------------------
      数学  语文  英语
张三    45    65   100
李四    56    45    50
王五    67    67    67
      数学  语文  英语
张三    45    65   100
李四    56    45    50
-------------------------
      数学  语文  英语
李四    56    45    50
王五    67    67    67
      数学  语文  英语
张三    45    65   100
王五    67    67    67

2、按列提取

import pandas as pd
pd.set_option('display.unicode.east_asian_width', True)
data = [[45, 65, 100], [56, 45, 50], [67, 67, 67]]
index = ['张三', '李四', '王五']
columns = ['数学', '语文', '英语']
df = pd.DataFrame(data=data, index=index, columns=columns)
print(df)
print('-------------------------')
# 直接使用列名提取
print(df[['数学', '英语']])
print('-------------------------')
# 提取不连续的列
# [行, 列]
# 提取:所有行的数学和英语
print(df.loc[:, ['数学', '英语']])
print(df.iloc[:, [0, 2]])
print('-------------------------')
# 提取连续的列
print(df.loc[:, '语文':])
print(df.iloc[:, 1:])
数学  语文  英语
张三    45    65   100
李四    56    45    50
王五    67    67    67
-------------------------
      数学  英语
张三    45   100
李四    56    50
王五    67    67
-------------------------
      数学  英语
张三    45   100
李四    56    50
王五    67    67
      数学  英语
张三    45   100
李四    56    50
王五    67    67
-------------------------
      语文  英语
张三    65   100
李四    45    50
王五    67    67
      语文  英语
张三    65   100
李四    45    50
王五    67    67

3、提取区域数据

import pandas as pd
pd.set_option('display.unicode.east_asian_width', True)
data = [[45, 65, 100], [56, 45, 50], [67, 67, 67]]
index = ['张三', '李四', '王五']
columns = ['数学', '语文', '英语']
df = pd.DataFrame(data=data, index=index, columns=columns)
print(df)
print('-------------------------')
print(df.loc['张三', '数学'], type(df.loc['张三', '数学']))
print(df.iloc[0, 0], type(df.iloc[0, 0]))
print('-------------------------')
print(df.loc[['张三', '王五'], ['数学', '语文']])
print(df.iloc[[0, 2], [0, 2]])
print('-------------------------')
# 区域数据连续
# [行切片, 列切片]
print(df.loc['张三':'李四', '数学':'语文'])
print(df.iloc[0:2, 0:2])
print('-------------------------')
# 区域数据不连续
print(df.iloc[[0, 2], [0, 2]])  # 第0行,第2行;第0列,第2列
print('-------------------------')
print(df.iloc[:, 0])  # 所有行的第0列
数学  语文  英语
张三    45    65   100
李四    56    45    50
王五    67    67    67
-------------------------
45 <class 'numpy.int64'>
45 <class 'numpy.int64'>
-------------------------
      数学  语文
张三    45    65
王五    67    67
      数学  英语
张三    45   100
王五    67    67
-------------------------
      数学  语文
张三    45    65
李四    56    45
      数学  语文
张三    45    65
李四    56    45
-------------------------
      数学  英语
张三    45   100
王五    67    67
-------------------------
张三    45
李四    56
王五    67
Name: 数学, dtype: int64

4、提取指定条件数据

import pandas as pd
pd.set_option('display.unicode.east_asian_width', True)
data = [[45, 65, 100], [56, 45, 50], [67, 67, 67]]
index = ['张三', '李四', '王五']
columns = ['数学', '语文', '英语']
df = pd.DataFrame(data=data, index=index, columns=columns)
print(df)
print('-------------------------')
# 语文 >= 60
print(df.loc[df['语文'] >= 60])
print('-------------------------')
# 语文 >= 60 数学 >= 60
# 多个关系使用关系运算符
print(df.loc[(df['语文'] >= 60) & (df['数学'] >= 60)])
数学  语文  英语
张三    45    65   100
李四    56    45    50
王五    67    67    67
-------------------------
      数学  语文  英语
张三    45    65   100
王五    67    67    67
-------------------------
      数学  语文  英语
王五    67    67    67


目录
相关文章
|
6天前
|
数据采集 数据可视化 数据挖掘
数据分析大神养成记:Python+Pandas+Matplotlib助你飞跃!
在数字化时代,数据分析至关重要,而Python凭借其强大的数据处理能力和丰富的库支持,已成为该领域的首选工具。Python作为基石,提供简洁语法和全面功能,适用于从数据预处理到高级分析的各种任务。Pandas库则像是神兵利器,其DataFrame结构让表格型数据的处理变得简单高效,支持数据的增删改查及复杂变换。配合Matplotlib这一数据可视化的魔法棒,能以直观图表展现数据分析结果。掌握这三大神器,你也能成为数据分析领域的高手!
22 2
|
4天前
|
数据采集 数据可视化 算法
GitHub星标68K!Python数据分析入门手册带你从数据获取到可视化
Python作为一门优秀的编程语言,近年来受到很多编程爱好者的青睐。一是因为Python本身具有简捷优美、易学易用的特点;二是由于互联网的飞速发展,我们正迎来大数据的时代,而Python 无论是在数据的采集与处理方面,还是在数据分析与可视化方面都有独特的优势。我们可以利用 Python 便捷地开展与数据相关的项目,以很低的学习成本快速完成项目的研究。
|
6天前
|
数据采集 数据挖掘 数据处理
Python数据分析:Numpy、Pandas高级
在上一篇博文中,我们介绍了Python数据分析中NumPy和Pandas的基础知识。本文将深入探讨NumPy和Pandas的高级功能,并通过一个综合详细的例子展示这些高级功能的应用。
|
5天前
|
数据采集 数据可视化 算法
GitHub星标68K!Python数据分析入门手册带你从数据获取到可视化
Python作为一门优秀的编程语言,近年来受到很多编程爱好者的青睐。一是因为Python本身具有简捷优美、易学易用的特点;二是由于互联网的飞速发展,我们正迎来大数据的时代,而Python 无论是在数据的采集与处理方面,还是在数据分析与可视化方面都有独特的优势。我们可以利用 Python 便捷地开展与数据相关的项目,以很低的学习成本快速完成项目的研究。 今天给小伙伴们分享的这份Python数据分析入门手册本着实用性的目的,着眼于整个数据分析的流程,介绍了从数据采集到可视化的大致流程。
|
10天前
|
供应链 数据可视化 数据挖掘
【python】python省市水资源数据分析可视化(源码+数据)【独一无二】
【python】python省市水资源数据分析可视化(源码+数据)【独一无二】
|
7天前
|
数据采集 数据挖掘 数据处理
Python数据分析:Numpy、Pandas基础
本文详细介绍了 Python 中两个重要的数据分析库 NumPy 和 Pandas 的基础知识,并通过一个综合的示例展示了如何使用这些库进行数据处理和分析。希望通过本篇博文,能更好地理解和掌握 NumPy 和 Pandas 的基本用法,为后续的数据分析工作打下坚实的基础。
|
8天前
|
数据可视化 数据挖掘 数据处理
【python】python农产品数据分析可视化(源码+论文+数据)【独一无二】
【python】python农产品数据分析可视化(源码+论文+数据)【独一无二】
|
9天前
|
数据可视化 数据挖掘 Python
【python】python学生成绩数据分析可视化(源码+数据+论文)【独一无二】
【python】python学生成绩数据分析可视化(源码+数据+论文)【独一无二】
|
4天前
|
Python
Pandas 读取Eexcel - 间隔N行,读取某列数据
Pandas 读取Eexcel - 间隔N行,读取某列数据
9 0
|
5天前
|
存储 数据可视化 数据挖掘
Python 3 中使用 pandas 和 Jupyter Notebook 进行数据分析和可视化
Python 3 中使用 pandas 和 Jupyter Notebook 进行数据分析和可视化
13 0