首页 > 其他分享 >Pandas从入门到精通

Pandas从入门到精通

时间:2024-03-13 16:44:57浏览次数:25  
标签:index 精通 入门 Series 索引 pd 数据 Pandas

Pandas

一、Pandas简介

1.pandas是什么

Pandas是一个开源的数据分析和数据处理库,它是基于Python编程语言的

Pandas 提供了易于使用的数据结构和数据分析工具,特别适用于处理结构化数据,如表格型数据(类似于Excel表格)。

Pandas 是数据科学和分析领域中常用的工具之一,它使得用户能够轻松地从各种数据源中导入数据,并对数据进行高效的操作和分析。

Pandas 主要引入了两种新的数据结构:DataFrameSeries。(重点就是学这两个数据结构

1.1 Series

Series:类似于一堆数组或列表,是由一组数据及其相关的数据标签(索引)构成。Series可以看作是DataFrame中的一列,也可以是单独存在的一堆数据结构。

pF6bvOP.png

1.2 DataFrame

DataFrame: 类似于一个二维表格,它是 Pandas 中最重要的数据结构。DataFrame 可以看作是由多个 Series 按列排列构成的表格,它既有行索引也有列索引,因此可以方便地进行行列选择、过滤、合并等操作。

pF6qiWj.png

DataFrame 可视为由多个 Series 组成的数据结构:

pF6qVO0.png

Pandas 提供了丰富的功能,包括:

  • 数据清洗:处理缺失数据、重复数据等。
  • 数据转换:改变数据的形状、结构或格式。
  • 数据分析:进行统计分析、聚合、分组等。
  • 数据可视化:通过整合 Matplotlib 和 Seaborn 等库,可以进行数据可视化。

2.Pandas应用

Pandas 在数据科学和数据分析领域中具有广泛的应用,其主要优势在于能够处理和分析结构化数据。

以下是 Pandas 的一些主要应用领域:

  • 数据清洗和预处理: Pandas被广泛用于清理和预处理数据,包括处理缺失值、异常值、重复值等。它提供了各种方法来使数据更适合进行进一步的分析。
  • 数据分析和统计: Pandas使数据分析变得更加简单,通过DataFrame和Series的灵活操作,用户可以轻松地进行统计分析、汇总、聚合等操作。从均值、中位数到标准差和相关性分析,Pandas都提供了丰富的功能。
  • 数据可视化: 将Pandas与Matplotlib、Seaborn等数据可视化库结合使用,可以创建各种图表和图形,从而更直观地理解数据分布和趋势。这对于数据科学家、分析师和决策者来说都是关键的。
  • 时间序列分析: Pandas在处理时间序列数据方面表现出色,支持对日期和时间进行高效操作。这对于金融领域、生产领域以及其他需要处理时间序列的行业尤为重要。
  • 机器学习和数据建模: 在机器学习中,数据预处理是非常关键的一步,而Pandas提供了强大的功能来处理和准备数据。它可以帮助用户将数据整理成适用于机器学习算法的格式。
  • 数据库操作: Pandas可以轻松地与数据库进行交互,从数据库中导入数据到DataFrame中,进行分析和处理,然后将结果导回数据库。这在数据库管理和分析中非常有用。
  • 实时数据分析: 对于需要实时监控和分析数据的应用,Pandas的高效性能使其成为一个强大的工具。结合其他实时数据处理工具,可以构建实时分析系统。

Pandas 在许多领域中都是一种强大而灵活的工具,为数据科学家、分析师和工程师提供了处理和分析数据的便捷方式。

二.Pandas安装

因为Pandas是一个基于python的库,所以我们需要安装Python,然后再通过Python的包管理工具pip安装Pandas。

pip install pandas

导入pandas一般使用别名pd代替:

import pandas as pd

一个简单的pandas实例:

import pandas as pd

data = {
  'name': ["Tom", "Nick", "Jane"],
  'age': [18, 24, 30],
  'gender': ["male", "male", "female"]
}

df = pd.DataFrame(data)
print(df)

pF6qx39.png

三.Pandas数据结构之Series

Pandas Series 类似表格中的一个列(column),类似于一维数组,可以保存任何数据类型。

3.1Series 特点:

  • 索引: 每个 Series 都有一个索引,它可以是整数、字符串、日期等类型。如果没有显式指定索引,Pandas 会自动创建一个默认的整数索引。
  • 数据类型: Series 可以容纳不同数据类型的元素,包括整数、浮点数、字符串等。

pF6bvOP.png

Series 是 Pandas 中的一种基本数据结构,类似于一维数组或列表,但具有标签(索引),使得数据在处理和分析时更具灵活性。

以下是关于 Pandas 中的 Series 的详细介绍: 创建 Series: 可以使用 pd.Series() 构造函数创建一个 Series 对象,传递一个数据数组(可以是列表、NumPy 数组等)和一个可选的索引数组。

pandas.Series(data, index, dtype, name, copy)

参数说明:

  • data:一组数据(ndarray)。
  • index:数据索引标签,如果不指定,默认从0开始。
  • dtype:数据类型,默认会自己判断。
  • name:设置名称。
  • copy:拷贝数据,默认是False
3.1.1 创建一个简单的Series实例:
import pandas as pd

a = [1, 2, 3, 4, 5, 6]

b = pd.Series(a)

print(b)

输出结果如下:

pF6L72d.png

从上图可知,如果没有指定索引,索引值就从0开始,我哦们可以根据索引值读取数据:

import pandas as pd

a = [1, 2, 3, 4, 5, 6]

b = pd.Series(a)

print(b[1])

输出结果如下:

2
3.1.2 我们可以指定索引值,如下实例:
import pandas as pd

people = ['Tom','Jack','Jason']

data = pd.Series(people, index = ['a','b','c'])

print(data)

输出结果如下:

pF6O0sI.png

根据索引值读取数据:

import pandas as pd

people = ['Tom','Jack','Jason']

data = pd.Series(people, index = ['a','b','c'])

print(data['a'])

输出结果如下:

Tom

我们也可以使用key/value对象,类似字典来创建Series:

import pandas as pd

people = {1: "Tome", 2: "Jack", 3: "Jason"}

data = pd.Series(people, index = [1, 2])

print(data)

输出结果如下:

pFcYsxK.png

3.1.3 设置 Series 名称参数:
import pandas as pd

people = {1: "Tome", 2: "Jack", 3: "Jason"}

data = pd.Series(people, index = [1, 2], name="People-Series-Test")

print(data)

输出结果如下:

pFcY6KO.png

3.2更多Series说明:

3.2.1 基本操作:
# 获取值
value = series[2]  # 获取索引为2的值

# 获取多个值
subset = series[1:4]  # 获取索引为1到3的值

# 使用自定义索引
value = series_with_index['b']  # 获取索引为'b'的值

# 索引和值的对应关系
for index, value in series_with_index.items():
    print(f"Index: {index}, Value: {value}")
3.2.2 基本运算:
# 算术运算
result = series * 2  # 所有元素乘以2

# 过滤
filtered_series = series[series > 2]  # 选择大于2的元素

# 数学函数
import numpy as np
result = np.sqrt(series)  # 对每个元素取平方根
3.2.3 属性和方法:
# 获取索引
index = series_with_index.index

# 获取值数组
values = series_with_index.values

# 获取描述统计信息
stats = series_with_index.describe()

# 获取最大值和最小值的索引
max_index = series_with_index.idxmax()
min_index = series_with_index.idxmin()

注意事项:

  • Series 中的数据是有序的。
  • 可以将 Series 视为带有索引的一维数组。
  • 索引可以是唯一的,但不是必须的。
  • 数据可以是标量、列表、NumPy 数组等。

标签:index,精通,入门,Series,索引,pd,数据,Pandas
From: https://www.cnblogs.com/LZXSDM/p/18070982

相关文章

  • Pandas导出美化技巧,让你的Excel更出众
    pandas的DataFrame可以通过设置参数使得在jupyternotebook中显示的更加美观,但是,将DataFrame的数据导出excel时,却只能以默认最朴素的方式将数据写入excel。本文介绍一种简单易用,让导出的excel更加美观的方法。1.概要首先,引入一个库StyleFrame,这个库封装pandas和openpyxl,让我......
  • 五.pandas常见操作
    目录五.pandas常见操作1.pandas处理字符串以上演示1-大小写转换2-去空格(两边).str.strip()3-切割4-连接.str.cat()5-空格检测.str.contains("")6-替换7-count()--返回元素出现次数8-repeat()2.查询操作2.1query("")2.2isin()2.3apply()3.缺失值处理......
  • 浅淡 C++ 与 C++ 入门
            我们知道,C语言是结构化和模块化的语言,适用于较小规模的程序。而当解决复杂问题,需要高度抽象和建模时,C语言则不合适,而C++正是在C的基础之上,容纳进去了面向对象编程思想,并增加了许多有用的库,以及编程范式。        因此在这篇博客,将会介绍C++中引入哪些......
  • 【自动化测试入门】用Airtest - Selenium对Firefox进行自动化测试(0基础也能学会)
    1.前言本文将详细介绍如何使用AirtestIDE驱动Firefox测试,以及脱离AirtestIDE怎么驱动Firefox(VScode为例)。看完本文零基础小白也能学会Firefox浏览器自动化测试!!!2.如何使用AirtestIDE驱动Firefox浏览器对于Web自动化测试,目前AirtestIDE支持chrome浏览器和Firefox2种浏览器,今天......
  • ThreadLocal 快速入门
    ThreadLocal快速入门ThreadLocal是Java中的一个类,用于创建线程局部变量。线程局部变量是一种特殊的变量,每个线程都有自己的副本,互相之间不会相互影响。这在多线程环境中非常有用,可以避免线程间共享变量导致的并发问题。定义与作用:ThreadLocal是Java中的一个类,用于......
  • springmvc入门登录功能
    学习springmvc的时候的一个入门功能,登录功能。配置好web框架,导入需要springjar包和springmvc需要的两个jar包,就可以编码了,首先写了登录需要的jsp页面<%@pagecontentType="text/html;charset=UTF-8"language="java"%><html><head><title>Title</title></hea......
  • C语言入门学习 --- 7.结构体
    文章目录第七章结构体1.结构体的声明1.1结构的基础知识1.2结构的声明1.3结构成员的类型1.4结构体变量的定义和初始化2.结构体成员的访问2.1结构体变量访问成员2.2结构体指针访问指向变量的成员3.结构体传参配套练习:第七章结构体1.结构体类型的声明2.结构体初始......
  • C语言入门学习 --- 9.编程练习题
    1.正整数A和正整数B的最小公倍数是指能被A和B整除的最小的正整数,设计一个算法,求输入A和B的最小公倍数。输入描述:输入两个正整数A和B。输出描述:输出A和B的最小公倍数。输入:57输出:35#include<stdio.h>intmain(){ inta=0; intb=0; inti=0; scanf("%d%......
  • 算法入门书籍(二)--2024.03.13
    小学C++编程入门书籍及相关资料介绍(二)算法篇小学C++编程入门书籍及相关资料介绍(二)算法篇_c++教材-CSDN博客 算法入门书籍--2022.04.04算法入门书籍--2022.04.04-CSDN博客1、聪明人的游戏信息学探秘.提高篇-2017年06月2、啊哈!算法3、哇,编程!——跟小明一起学......
  • JavaScript学习--splice()函数入门与精通
    一、splice入门splice方法:通过删除(两个参数)或替换现有元素(三个参数)或者原地添加新的元素(三个参数)来修改数组,并以数组形式返回被修改的内容。此方法会改变原数组。参数:index——必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置(从1开始)。howmany——必需......