【pandas基础】--核心数据结构

pandas,基础,核心,数据结构 · 浏览次数 : 144

小编点评

**pandas数据结构的创建方式** 1. **Series**:包含标签索引的一维数据结构。 2. **DataFrame**:包含行和列组成的多维数据结构。 **创建 Series 的两种方式** * 从列表创建:```python s = pd.Series(l) ``` * 从字典创建:```python s = pd.Series(d) ``` **创建 DataFrame 的两种方式** * 从列表创建:```python df = pd.DataFrame(l, index=[\"小明\", "小红\"], columns=[\"语文\", "数学\", "英语\"]) ``` * 从 numpy 数组创建:```python df = pd.DataFrame(np.array([[78, 89, 95], [65, 84, 100]])) ``` **两者的互相转换** * Series 到 DataFrame:通过字典中转。```python d = {\"语文\": 78, "数学\": 89, "英语\": 95}s = pd.Series(d)s.head() ``` * DataFrame 到 Series:通过 `pandas.DataFrame({...})` 创建。```python l = [[78, 89, 95], [65, 84, 100]]df = pd.DataFrame(l, index=[\"小明\", "小红\"], columns=[\"语文\", "数学\", "英语\"])df.head() ```

正文

pandas中用来承载数据的两个最重要的结构分别是:

  1. Series:相当于增强版的一维数组
  2. DataFrame:相当于增强版的二维数组

pandas最大的优势在于处理表格类数据,如果数据维度超过二维,一般我们会使用另一个 python的库 numpy

本篇主要介绍这两种核心数据结构的创建方式。

1. Series

pandasSeries是一种带有标签索引的一维数据结构。
它可以表示任何一维带标签的数据,例如时间序列数据、运动员数据、股票价格等等。

pandasSeries由两个数组构成:一个是数据数组,它可以是numpy数组、列表、字典等;另一个是索引数组,它指定数据数组中每个元素的标签。

Series可以进行各种数学运算、逻辑运算和复制操作,可以轻松创建、操作和使用。
pandasSeries特别强大之处就是可以使用各种方法进行数据的操作、处理和分析,因此在数据分析、数据处理和科学计算方面非常有用。

常用的创建 Series有两种方式:

1.1 从列表创建

l = [78, 89, 95]
s = pd.Series(l)
s.head()

image.png
从列表可以直接创建出 Series,可以看出,与一般的一维数组相比,Series多了一列索引信息。
其实,除此之外,Series还有很多用于分析和统计的方法,后续我们再介绍。

索引默认是从0开始的数字,也可以在创建时设置有意义的索引名称。

l = [78, 89, 95]
s = pd.Series(l, index=["语文", "数学", "英语"])
s.head()

image.png

1.2 从字典创建

d = {"a": 78, "b": 89, "c": 95}
s = pd.Series(d)
s.head()

image.png
从字典创建Series时,会将字典的 key作为了索引。
修改索引不用 index参数,而是直接修改字典的 key

d = {"语文": 78, "数学": 89, "英语": 95}
s = pd.Series(d)
s.head()

image.png

2. Dataframe

pandasDataFrame是一个二维的数据结构,可以存储各种类型的数据,类似于Excel中的表格。
它由行和列组成,每一行和每一列都有一个索引值,可以通过索引值进行读写操作。

DataFrame支持许多操作,包括对数据的过滤、切片、排序、连接和聚合等。
它还可以从各种数据源(如CSV、SQL数据库和Excel)中读取数据,并将数据写入这些数据源。

pandas中,DataFrame可以使用字典、列表、Numpy数组、其他pandas数据框等构建。
DataFrame还有一些重要的属性和方法,例如headtaildescribe等,用于查看数据、统
计数据、随机抽样等。

除此之外,DataFrame还支持pandas中的许多高级操作,例如多重索引、透视表、重塑等。
这些功能使DataFrame成为数据分析中必不可少的工具。

2.1 从列表创建

l = [[78, 89, 95], [65, 84, 100]]
df = pd.DataFrame(l)
df.head()

image.png
从列表创建DataFrame之后,默认的索引列名称都是从0开始的数字。
也可以自定义DataFrame的索引名称和列名称,通过 indexcolumns参数。

l = [[78, 89, 95], [65, 84, 100]]
df = pd.DataFrame(l, index=["小明", "小红"], columns=["语文", "数学", "英语"])
df.head()

image.png

2.2 从字典创建

d = [{"语文": 78, "数学": 89, "英语": 95}, {"语文": 65, "数学": 84, "英语": 100}]
df = pd.DataFrame(d)
df.head()

image.png
字典的key作为列名称,索引不设置的话,默认还是从0开始的数字。

2.3 从 numpy 数组创建

import numpy as np

data = np.array([[78, 89, 95], [65, 84, 100]])
df = pd.DataFrame(data)
df.head()

image.png
numpy二维数组创建 DataFrame和直接从列表创建类似。
注意,这里只能从 numpy的二维数组创建,如果是维度更高的数组,创建时会出错。

data = np.array([[[78, 89, 95], [65, 84, 100]]])
df = pd.DataFrame(data)
df.head()

上面的 data是三维数组,执行上面的代码会有如下的错误信息:
image.png

3. 两种结构互相转换

pandas的两种核心结构之间是可以互相转换的,可以将 Series理解为 DataFrame的一列。

3.1 Series 到 DataFrame

对于一个 Series来说,可以理解成一列是索引,一列是数据。
Series转换为 DataFrame有多种方式,通过字典来中转是比较直观的一种方式。

d = {"语文": 78, "数学": 89, "英语": 95}
s = pd.Series(d)
s.head()

image.png
由前面的介绍可知,红色框内的是 Series的索引(即 s.index),
右边一列数字部分是Series的值(即s.values)。

df = pd.DataFrame({"学科": s.index, "分数": s.values})
df.head()

image.png
这样就转换成了一个 DataFrame,列名就是字典的key学科分数

3.2 DataFrame 到 Series

DataFrameSeries更加简单,DataFrame的每一列都可以转成 Series

l = [[78, 89, 95], [65, 84, 100]]
df = pd.DataFrame(l, index=["小明", "小红"], columns=["语文", "数学", "英语"])
df.head()

df["数学"]

image.png

type(df["数学"])

image.png

注意,DataFrame只有选择一列的时候才是一个 Series,如果选择多列的话,则还是一个 DataFrame

print(type(df[["数学", "语文"]]))
df[["数学", "语文"]]

image.png

4. 总结回顾

本篇主要介绍了pandas的两个核心数据结构 SeriesDataFrame
首先介绍了它们各自的创建方式,即从普通的python数据结构创建 SeriesDataFrame的常用方式。
然后也介绍了它们之间常用的互相转换方法。

SeriesDataFrame数据部分就是一维数组和二维数组,pandas不过是在数据部分之上封装了各种各样的管理和分析统计的函数。
然而正因为有了这些函数,才让pandas成为数据分析的一件利器。

本文关联的微信视频号短视频:
pandas02-核心数据结构.png

与【pandas基础】--核心数据结构相似的内容:

【pandas基础】--核心数据结构

pandas中用来承载数据的两个最重要的结构分别是: Series:相当于增强版的一维数组 DataFrame:相当于增强版的二维数组 pandas最大的优势在于处理表格类数据,如果数据维度超过二维,一般我们会使用另一个 python的库 numpy。 本篇主要介绍这两种核心数据结构的创建方式。 1

pandas -- 处理非数值型数据 -- 数据分析三剑客(核心)

博客地址:https://www.cnblogs.com/zylyehuo/ 开发环境 anaconda 集成环境:集成好了数据分析和机器学习中所需要的全部环境 安装目录不可以有中文和特殊符号 jupyter anaconda提供的一个基于浏览器的可视化开发工具 为什么学习pandas numpy已

pandas(进阶操作)-- 处理非数值型数据 -- 数据分析三剑客(核心)

博客地址:https://www.cnblogs.com/zylyehuo/ 开发环境 anaconda 集成环境:集成好了数据分析和机器学习中所需要的全部环境 安装目录不可以有中文和特殊符号 jupyter anaconda提供的一个基于浏览器的可视化开发工具 import numpy as np

【pandas基础】--概述

Pandas是一个开源的Python数据分析库。 它提供了快速,灵活和富有表现力的数据结构,旨在使数据清洗和分析变得简单而快速。 Pandas是基于NumPy数组构建的,因此它在许多NumPy函数上提供了直接的支持。它还提供了用于对表格数据进行操作的数据结构,例如Series和DataFrame。

【pandas基础】--数据读取

数据读取是第一步,只有成功加载数据之后,后续的操作才有可能。 pandas可以读取和导入各种数据格式的数据,如CSV,Excel,JSON,SQL,HTML等,不需要手动编写复杂的读取代码。 1. 各类数据源 pandas提供了导入各类常用文件格式数据的接口,这里介绍3种最常用的加载数据的接口。 1

【pandas基础】--数据检索

pandas的数据检索功能是其最基础也是最重要的功能之一。 pandas中最常用的几种数据过滤方式如下: 行列过滤:选取指定的行或者列 条件过滤:对列的数据设置过滤条件 函数过滤:通过函数设置更加复杂的过滤条件 本篇所有示例所使用的测试数据如下: import pandas as pd import

【pandas基础】--数据整理

pandas进行数据整理的意义在于,它是数据分析、数据科学和机器学习的前置步骤。 通过数据整理可以提前了解数据的概要,缺失值、重复值等情况,为后续的分析和建模提供更为可靠的数据基础。 本篇主要介绍利用pandas进行数据整理的各种方法。 1. 数据概要 获取数据概要信息可以帮助我们了解数据的基本情况

【pandas基础】--数据修改

pandas 作为一种常用的数据分析工具,提供了广泛的数据修改方法。 既可以针对行或者列的数据进行修改,也可以对具体单个元素进行修改,还可以基于条件选择要修改的行或者列的数据。 1. 增加数据 1.1 增加行数据 pandas的DataFrame增加一行或者多行数据之前是使用append方法。 im

【pandas基础】--数据拆分与合并

数据集拆分是将一个大型的数据集拆分为多个较小的数据集,可以让数据更加清晰易懂,也方便对单个数据集进行分析和处理。 同时,分开的数据集也可以分别应用不同的数据分析方法进行处理,更加高效和专业。 数据集合并则是将多个数据集合并成一个大的数据集,可以提供更全面的信息,也可以进行更综合的数据分析。 同时,数

【pandas基础】--数据排序

`pandas`的数据排序可以帮助我们更好地理解和分析数据。 通过对数据进行排序,我们可以提取出特定的信息,例如最大值、最小值、中位数、众数等等,从而更准确地识别数据的特征和特点。 此外,数据排序还可以帮助我们更好地进行数据可视化,例如绘制直方图、箱线图等等,进一步帮助我们对数据进行解读和分析。 总