Pandas数据处理与分析教程:从基础到实战

这篇具有很好参考价值的文章主要介绍了Pandas数据处理与分析教程:从基础到实战。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

在数据分析和数据科学领域,Pandas是Python编程语言中最受欢迎的数据处理库之一。它提供了高效、灵活和易于使用的数据结构,使得数据的清洗、转换和分析变得简单而直观。本教程将详细介绍Pandas的各个方面,包括基本的数据结构、数据操作、数据过滤和排序、数据聚合与分组,以及常见的数据分析任务。
Pandas数据处理与分析教程:从基础到实战

什么是Pandas?

Pandas是一个开源的Python库,提供了高性能、易用和灵活的数据结构,用于数据处理和分析。它建立在NumPy之上,使得处理结构化数据更加简单和高效。Pandas的两个主要数据结构是Series和DataFrame,可以理解为NumPy数组的增强版。它们提供了更多的功能和灵活性,使得数据处理变得更加直观和方便。

Pandas的安装和导入

要使用Pandas,首先需要将其安装在你的Python环境中。可以通过使用pip命令来进行安装:

pip install pandas

安装完成后,我们可以通过以下方式将Pandas导入到Python代码中:

import pandas as pd

数据结构

Pandas提供了两种基本的数据结构:Series和DataFrame。
Pandas数据处理与分析教程:从基础到实战

Series(案例1:创建Series)

Series是一种一维的带标签的数组,可以存储任意类型的数据。它类似于带有标签的NumPy数组,但提供了更多的功能和灵活性。

import pandas as pd

data = [1, 2, 3, 4, 5]
s = pd.Series(data)
print(s)

输出结果:

0    1
1    2
2    3
3    4
4    5
dtype: int64

DataFrame(案例2:创建DataFrame)

DataFrame是一种二维的表格型数据结构,可以存储多种类型的数据。它类似于Excel中的电子表格或SQL中的数据库表,提供了行、列的索引,方便对数据进行增删改查。

import pandas as pd

data = {'Name': ['Alice', 'Bob', 'Charlie'],
        'Age': [25, 30, 35],
        'Country': ['USA', 'Canada', 'UK']}
df = pd.DataFrame(data)
print(df)

输出结果:

     Name  Age Country
0   Alice   25     USA
1     Bob   30  Canada
2  Charlie   35      UK

数据读取和写入

Pandas可以从各种数据源中读取数据,包括CSV文件、Excel文件、数据库等。同时,也可以将数据写入到这些数据源中。
Pandas数据处理与分析教程:从基础到实战

从CSV文件中读取数据(案例3:读取CSV文件)

import pandas as pd

df = pd.read_csv('data.csv')
print(df)

输出结果:

   Name  Age Country
0  John   25     USA
1  Mary   30  Canada
2  Mark   35      UK

从Excel文件中读取数据(案例4:读取Excel文件)

import pandas as pd

df = pd.read_excel('data.xlsx')
print(df)

输出结果:

   Name  Age Country
0  John   25     USA
1  Mary   30  Canada
2  Mark   35      UK

将数据写入CSV和Excel文件(案例5:写入CSV和Excel文件)

import pandas as pd

df = pd.DataFrame({'Name': ['John', 'Mary', 'Mark'],
                   'Age': [25, 30, 35],
                   'Country': ['USA', 'Canada', 'UK']})

df.to_csv('data.csv', index=False)
df.to_excel('data.xlsx', index=False)

这样就将DataFrame中的数据写入到了CSV和Excel文件中。

数据操作

在数据操作方面,Pandas提供了丰富的功能,包括数据选择和索引、数据切片和过滤、数据缺失值处理、数据排序和排名等。
Pandas数据处理与分析教程:从基础到实战

数据选择和索引(案例6:选择和索引数据)

import pandas as pd

data = {'Name': ['Alice', 'Bob', 'Charlie'],
        'Age': [25, 30, 35],
        'Country': ['USA', 'Canada', 'UK']}
df = pd.DataFrame(data)

# 选择单列
print(df['Name'])

# 选择多列
print(df[['Name', 'Age']])

# 选择行
print(df.loc[0])

# 选择多行
print(df.loc[[0, 2]])

# 利用条件选择
print(df[df['Age'] > 30])

数据切片和过滤(案例7:切片和过滤数据)

import pandas as pd

data = {'Name': ['Alice', 'Bob', 'Charlie'],
        'Age': [25, 30, 35],
        'Country': ['USA', 'Canada', 'UK']}
df = pd.DataFrame(data)

# 切片操作
print(df.iloc[1:3, :])

# 过滤操作
print(df[df['Age'] > 30])

数据缺失值处理(案例8:处理缺失值)

import pandas as pd
import numpy as np

data = {'Name': ['Alice', np.nan, 'Charlie'],
        'Age': [25, np.nan, 35],
        'Country': ['USA', 'Canada', np.nan]}
df = pd.DataFrame(data)

# 检查缺失值
print(df.isnull())

# 填充缺失值
df_filled = df.fillna(0)
print(df_filled)

数据排序和排名(案例9:排序和排名数据)

import pandas as pd

data = {'Name': ['Alice', 'Bob', 'Charlie'],
        'Age': [25, 30, 35],
        'Country': ['USA', 'Canada', 'UK']}
df = pd.DataFrame(data)

# 按某一列排序
df_sorted = df.sort_values('Age')
print(df_sorted)

# 排名
df['Rank'] = df['Age'].rank()
print(df)

数据聚合与分组

在数据聚合与分组方面,Pandas提供了灵活的功能,可以对数据进行分组、聚合和统计等操作。
Pandas数据处理与分析教程:从基础到实战

分组和聚合(案例10:分组和聚合数据)

import pandas as pd

data = {'Name': ['Alice', 'Bob', 'Charlie'],
        'Age': [25, 30, 35],
        'Country': ['USA', 'Canada', 'UK']}
df = pd.DataFrame(data)

# 按照某一列进行分组
grouped = df.groupby('Country')

# 对分组后的数据进行聚合操作
agg_result = grouped['Age'].mean()
print(agg_result)

数据可视化

Pandas结合Matplotlib库,提供了方便的数据可视化功能,可以直接在Pandas中进行数据图表绘制。
Pandas数据处理与分析教程:从基础到实战

绘制线形图(案例11:绘制线形图)

import pandas as pd
import matplotlib.pyplot as plt

data = {'Year': [2010, 2011, 2012, 2013, 2014],
        'Sales': [100, 200, 150, 300, 250]}
df = pd.DataFrame(data)

# 绘制线形图
df.plot(x='Year', y='Sales', kind='line')
plt.show()

绘制柱状图(案例12:绘制柱状图)

import pandas as pd
import matplotlib.pyplot as plt

data = {'Year': [2010, 2011, 2012, 2013, 2014],
        'Sales': [100, 200, 150, 300, 250]}
df = pd.DataFrame(data)

# 绘制柱状图
df.plot(x='Year', y='Sales', kind='bar')
plt.show()

高级应用

除了基本的数据操作和可视化外,Pandas还提供了一些高级应用功能,包括时间序列分析、合并与连接数据等。

时间序列分析(案例13:时间序列分析)

import pandas as pd

# 创建一个时间序列
dates = pd.date_range('2023-01-01', '2023-01-10')
data = pd.Series([1, 2, 3, 4, 5, 6, 7, 8, 9, 10], index=dates)

# 按月份统计
monthly_data = data.resample('M').sum()
print(monthly_data)

合并与连接数据(案例14:合并与连接数据)

import pandas as pd

data1 = {'Name': ['Alice', 'Bob'],
         'Age': [25, 30]}
df1 = pd.DataFrame(data1)

data2 = {'Name': ['Charlie', 'Dave'],
         'Age': [35, 40]}
df2 = pd.DataFrame(data2)

# 合并两个DataFrame
df_merged = pd.concat([df1, df2])
print(df_merged)

数据透视表

数据透视表是一种用于对数据进行汇总和聚合的功能。在Pandas中,可以使用pivot_table函数来创建数据透视表,通过指定行、列和聚合函数来对数据进行分组和聚合。

创建数据透视表

首先,我们创建一个包含姓名、年份、销售额和利润的DataFrame:

import pandas as pd

data = {'Name': ['Alice', 'Bob', 'Charlie', 'Alice', 'Bob', 'Charlie'],
        'Year': [2010, 2011, 2012, 2010, 2011, 2012],
        'Sales': [100, 200, 150, 300, 250, 200],
        'Profit': [10, 20, 15, 30, 25, 20]}
df = pd.DataFrame(data)

现在,我们可以使用pivot_table函数创建数据透视表。在这个例子中,我们想要根据姓名和年份对销售额和利润进行汇总:

pivot_table = pd.pivot_table(df, values=['Sales', 'Profit'], index='Name', columns='Year', aggfunc='sum')
print(pivot_table)

输出结果:

        Profit          Sales         
Year      2010 2011 2012  2010 2011 2012
Name                                   
Alice       10  NaN  NaN   300  NaN  NaN
Bob        NaN   20  NaN   NaN  250  NaN
Charlie    NaN  NaN   35   NaN  NaN  350

数据透视表中的每个单元格表示对应姓名和年份的销售额和利润的总和。

文件读写

Pandas提供了各种方法来读取和写入不同格式的文件,如CSV、Excel和SQL等。

读取和写入CSV文件

要读取CSV文件,可以使用read_csv函数,并提供文件路径作为参数。以下是一个示例:

import pandas as pd

# 读取CSV文件
df = pd.read_csv('data.csv', encoding='utf-8')

要将DataFrame写入CSV文件,可以使用to_csv方法,并指定要保存的文件名。以下是一个示例:

import pandas as pd

# 写入CSV文件
df.to_csv('output.csv', index=False, encoding='utf-8')

在这个例子中,我们通过指定encoding='utf-8'来确保读取和写入时可以正确处理中文字符。

读取和写入Excel文件

Pandas还可以读取和写入Excel文件。要读取Excel文件,可以使用read_excel函数并指定文件路径。以下是一个示例:

import pandas as pd

# 读取Excel文件
df = pd.read_excel('data.xlsx')

要将DataFrame写入Excel文件,可以使用to_excel方法,并指定要保存的文件名。以下是一个示例:

import pandas as pd

# 写入Excel文件
df.to_excel('output.xlsx', index=False)

实战案例之分析销售数据

代码解析

import pandas as pd

# 读取销售数据文件
df = pd.read_csv('sales_data.csv')

# 查看前几行数据
print(df.head())

导入pandas库并简写为pd。然后使用read_csv函数读取名为sales_data.csv的销售数据文件,并将数据存储在DataFrame对象df中。接着,使用head方法打印出df的前几行数据。

# 查看数据的基本信息
print(df.info())

使用info方法打印出数据的基本信息,包括列名称、数据类型以及非空值的数量等。

# 统计销售额和利润的描述性统计信息
print(df[['Sales', 'Profit']].describe())

使用describe方法进行数据的描述性统计分析,输出销售额和利润的统计指标,如总数、均值、标准差、最小值、25%分位数、50%分位数(中位数)和75%分位数。

# 按照产品类别计算总销售额和利润
category_sales_profit = df.groupby('Category')[['Sales', 'Profit']].sum()
print(category_sales_profit)

使用groupby方法按照产品类别对数据进行分组,然后使用sum方法计算每个产品类别的总销售额和利润,并将结果存储在category_sales_profit中。

# 统计每个月的销售额和利润
df['OrderDate'] = pd.to_datetime(df['OrderDate'])  # 将日期字符串转换为日期对象
df['Month'] = df['OrderDate'].dt.month  # 提取出月份信息
monthly_sales_profit = df.groupby('Month')[['Sales', 'Profit']].sum()
print(monthly_sales_profit)

使用pd.to_datetime函数将日期字符串转换为日期对象,并将其赋值给新列OrderDate。然后,使用dt.month提取出日期对象的月份信息,将其赋值给新列Month。最后,使用groupby方法按照月份对数据进行分组,然后使用sum方法计算每个月的总销售额和利润,并将结果存储在monthly_sales_profit中。

完整代码

import pandas as pd

# 读取销售数据文件
df = pd.read_csv('sales_data.csv')

# 查看前几行数据
print(df.head())

# 查看数据的基本信息
print(df.info())

# 统计销售额和利润的描述性统计信息
print(df[['Sales', 'Profit']].describe())

# 按照产品类别计算总销售额和利润
category_sales_profit = df.groupby('Category')[['Sales', 'Profit']].sum()
print(category_sales_profit)

# 统计每个月的销售额和利润
df['OrderDate'] = pd.to_datetime(df['OrderDate'])  # 将日期字符串转换为日期对象
df['Month'] = df['OrderDate'].dt.month  # 提取出月份信息
monthly_sales_profit = df.groupby('Month')[['Sales', 'Profit']].sum()
print(monthly_sales_profit)

CSV数据:文章来源地址https://www.toymoban.com/news/detail-498943.html

OrderDate Category Sales Profit
2021-01-01 Electronics 100 10
2021-01-02 Fashion 200 20
2021-01-03 Electronics 150 15
2021-02-01 Fashion 300 30
2021-02-02 Clothing 250 25

到了这里,关于Pandas数据处理与分析教程:从基础到实战的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Pandas实战100例 | 案例 3: 数据清洗 - 处理缺失值

    案例 3: 数据清洗 - 处理缺失值 知识点讲解 在现实世界的数据集中,经常会遇到缺失值。Pandas 提供了多种方法来处理这些缺失值,包括填充缺失值、删除含有缺失值的行或列。 示例代码 检测缺失值 填充缺失值

    2024年01月20日
    浏览(47)
  • Pandas实战100例 | 案例 17: 处理重复数据 - 删除重复行

    案例 17: 处理重复数据 - 删除重复行 知识点讲解 在数据分析过程中,处理重复的记录是一个常见的任务。Pandas 提供了方便的方法来删除重复行,保证数据的准确性和可靠性。 删除所有列重复的行 : 使用 drop_duplicates() 方法可以删除 DataFrame 中所有列值完全相同的重复行。 基于

    2024年01月20日
    浏览(58)
  • 使用Pandas进行数据处理和分析的入门指南

    摘要:本文将介绍如何使用Python的Pandas库进行数据处理和分析,包括数据导入、数据清洗、数据转换和简单分析等方面的内容。 在数据科学和数据分析领域,数据处理是一个关键的步骤。Python的Pandas库提供了强大且易于使用的工具,使数据处理变得简单和高效。本文将引导您

    2024年02月10日
    浏览(79)
  • Python初学小知识(十四):数据分析处理库Pandas

    来源于这里。 很多情况下用的是pandas而不是numpy,因为前者是在后者的基础上又封装了一些操作,相当于做了函数简化。pandas主要是数据预处理用的比较多。 1.1 读取csv 任意一种格式,只要是以 , 为分隔符,就可以用 read_csv 读取: 先把文件打印出来看看结果: 结果是和表

    2023年04月25日
    浏览(53)
  • NumPy和Pandas库的基本用法,用于数据处理和分析

    当涉及到数据处理和分析时,NumPy和Pandas是两个非常常用的Python库。下面是它们的基本用法: NumPy(Numerical Python): 导入NumPy库:在代码中使用import numpy as np导入NumPy库。 创建NumPy数组:使用np.array()函数可以创建一个NumPy数组。例如,arr = np.array([1, 2, 3, 4, 5])创建一个包含整数

    2024年02月11日
    浏览(43)
  • 交互式数据分析和处理新方法:pandas-ai =Pandas + ChatGPT

    Python Pandas是一个为Python编程提供数据操作和分析功能的开源工具包。这个库已经成为数据科学家和分析师的必备工具。它提供了一种有效的方法来管理结构化数据(Series和DataFrame)。 在人工智能领域,Pandas经常用于机器学习和深度学习过程的预处理步骤。Pandas通过提供数据清理

    2024年02月03日
    浏览(50)
  • Python数据分析与应用 |第4章 使用pandas进行数据预处理 (实训)

    编号 性别 高血压 是否结婚 工作类型 居住类型 体重指数 吸烟史 中风 9046 男 否 是 私人 城市 36.6 以前吸烟 是 51676 女 否 是 私营企业 农村 N/A 从不吸烟 是 31112 男 否 是 私人 农村 32.5 从不吸烟 是 60182 女 否 是 私人 城市 34.4 抽烟 是 1665 女 是 是 私营企业 农村 24 从不吸烟 是

    2024年04月23日
    浏览(46)
  • 【100天精通Python】Day56:Python 数据分析_Pandas数据清洗和处理

    目录 数据清洗和处理 1.处理缺失值 1.1 删除缺失值: 1.2  填充缺失值: 1.3 插值: 2 数据类型转换 2.1 数据类型转换 2.2 日期和时间的转换: 2.3 分类数据的转换: 2.4 自定义数据类型的转换: 3 数据去重 4 数据合并和连接 数据清洗和处理         在数据清洗和处理方面,

    2024年02月09日
    浏览(68)
  • Pandas + ChatGPT 超强组合,pandas-ai :交互式数据分析和处理新方法

    Python Pandas是一个为Python编程提供数据操作和分析功能的开源工具包。这个库已经成为数据科学家和分析师的必备工具。它提供了一种有效的方法来管理结构化数据(Series和DataFrame)。 在人工智能领域,Pandas经常用于机器学习和深度学习过程的预处理步骤。Pandas通过提供数据清理

    2024年02月05日
    浏览(49)
  • Pandas+ChatGPT超强组合pandas-ai:交互式数据分析和处理新方法

    Python Pandas是一个为Python编程提供数据操作和分析功能的开源工具包。这个库已经成为数据科学家和分析师的必备工具。它提供了一种有效的方法来管理结构化数据(Series和DataFrame)。 在人工智能领域,Pandas经常用于机器学习和深度学习过程的预处理步骤。Pandas通过提供数据清理

    2024年02月12日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包