以Pandas创建DataFrame为中心的教程

引言

使用Python进行数据分析是一个日益流行的技能,但是很难想象数据分析能够没有Pandas。Pandas是一个基于NumPy的开源数据分析工具,提供了高级数据结构和高效的数据操作工具。在Pandas中,DataFrame是一个非常常见的数据结构,它类似于电子表格或SQL表格,但具有更高的灵活性和功能。在本教程中,我们将以Pandas创建DataFrame为中心,重点介绍如何用Pandas处理和操作数据。

正文

一、创建DataFrame

Pandas的DataFrame是二维数据结构,可以看作是多个Series的集合,其中每个Series代表一个列,所有的列都有相同的行索引。我们可以使用Pandas的函数来创建DataFrame,例如可以用Python列表或NumPy数组作为输入,然后使用columns参数指定列名。

import pandas as pd
import numpy as np

data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
        'age': [25, 32, 18, 47],
        'gender': ['F', 'M', 'M', 'M']}
df = pd.DataFrame(data, columns=['name', 'age', 'gender'])

上面这段代码首先定义了一个字典data,其中键是列名,值是该列的数据。然后用Pandas的DataFrame函数将字典转换为DataFrame,指定列名为’ name’、’age’、’gender’。可以通过print(df)输出DataFrame的内容:

      name  age gender
0    Alice   25      F
1      Bob   32      M
2  Charlie   18      M
3    David   47      M

我们可以看到,Pandas会默认为DataFrame分配行索引(0到n-1,其中n是行数)。

二、选择和过滤数据

在Pandas中,可以使用loc属性和iloc属性来选择和过滤数据。iloc按行索引选择数据,loc按标签选择数据。

例如,我们希望选择第1行和第3行以及’age’和’gender’列:

df.iloc[[0, 2]][['age', 'gender']]

注意,行索引从0开始,因此我们通过[0, 2]选择第1行和第3行。输出结果如下:

   age gender
0   25      F
2   18      M

另外,我们也可以选择年龄大于20岁的行:

df[df['age'] > 20]

输出结果如下:

      name  age gender
1      Bob   32      M
3    David   47      M

三、数据聚合和分组

数据聚合是指将多行数据合并为一行数据的过程。在Pandas中,可以使用groupby函数来实现对数据的分组和聚合。

例如,假设我们有一组数据,存储不同电影类型的票房数据,我们可以使用groupby函数对电影类型进行分组,并计算每个类型的票房总额:

data = {'genre': ['Action', 'Action', 'Comedy', 'Comedy'],
        'sales': [10000000, 8000000, 6000000, 9000000]}
df = pd.DataFrame(data, columns=['genre', 'sales'])

grouped_df = df.groupby(['genre']).sum()

上面这段代码首先定义了一个字典data,其中包含电影类型和电影票房的数据。然后用Pandas的groupby函数根据电影类型对数据进行分组,并对每个分组的值进行求和。可以通过print(grouped_df)输出聚合后的结果:

            sales
genre            
Action   18000000
Comedy   15000000

四、数据合并与连接

在数据处理中,常常需要将多个数据源合并或连接在一起。在Pandas中,可以使用merge和concat函数实现数据合并和连接。

例如,我们有两个DataFrame,分别存储不同用户的收入和支出数据。我们可以使用merge函数根据用户ID合并两个DataFrame:

income_data = {'user_id': [1, 2, 3, 4],
               'income': [5000, 8000, 7000, 9000]}
income_df = pd.DataFrame(income_data)

expense_data = {'user_id': [1, 2, 3, 4],
                'expense': [3000, 2000, 4000, 6000]}
expense_df = pd.DataFrame(expense_data)

merged_df = pd.merge(income_df, expense_df, on='user_id')

上面这段代码定义了两个字典income_data和expense_data,其中包含用户ID和收入、支出的数据。然后用Pandas的merge函数将两个DataFrame合并成一个DataFrame,通过user_id列进行连接。可以通过print(merged_df)输出合并后的DataFrame:

   user_id  income  expense
0        1    5000     3000
1        2    8000     2000
2        3    7000     4000
3        4    9000     6000

结论

本教程重点介绍了如何用Pandas创建DataFrame,选择和过滤数据,进行数据聚合和分组,以及数据合并和连接。这些都是Pandas中非常常见的操作。对于几乎所有的数据处理任务,Pandas都提供了简单而强大的工具。这使得Pandas成为数据科学从业者的必备技能。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/249752.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-12 17:11
下一篇 2024-12-12 17:11

相关推荐

  • MQTT使用教程

    MQTT是一种轻量级的消息传输协议,适用于物联网领域中的设备与云端、设备与设备之间的数据传输。本文将介绍使用MQTT实现设备与云端数据传输的方法和注意事项。 一、准备工作 在使用M…

    编程 2025-04-29
  • Python3.6.5下载安装教程

    Python是一种面向对象、解释型计算机程序语言。它是一门动态语言,因为它不会对程序员提前声明变量类型,而是在变量第一次赋值时自动识别该变量的类型。 Python3.6.5是Pyt…

    编程 2025-04-29
  • ArcGIS更改标注位置为中心的方法

    本篇文章将从多个方面详细阐述如何在ArcGIS中更改标注位置为中心。让我们一步步来看。 一、禁止标注智能调整 在ArcMap中设置标注智能调整可以自动将标注位置调整到最佳显示位置。…

    编程 2025-04-29
  • Deepin系统分区设置教程

    本教程将会详细介绍Deepin系统如何进行分区设置,分享多种方式让您了解如何规划您的硬盘。 一、分区的基本知识 在进行Deepin系统分区设置之前,我们需要了解一些基本分区概念。 …

    编程 2025-04-29
  • 写代码新手教程

    本文将从语言选择、学习方法、编码规范以及常见问题解答等多个方面,为编程新手提供实用、简明的教程。 一、语言选择 作为编程新手,选择一门编程语言是很关键的一步。以下是几个有代表性的编…

    编程 2025-04-29
  • Qt雷达探测教程

    本文主要介绍如何使用Qt开发雷达探测程序,并展示一个简单的雷达探测示例。 一、环境准备 在开始本教程之前,需要确保你的开发环境已经安装Qt和Qt Creator。如果没有安装,可以…

    编程 2025-04-29
  • CPU爆满怎么解决 Java为中心

    在Java编程中,难免会遇到CPU占用过高的情况,接下来从多个方面介绍如何解决CPU爆满问题。 一、优化代码 1、减少循环次数。循环体内不要放太多逻辑判断和计算,可以把计算提取出来…

    编程 2025-04-29
  • 猿编程python免费全套教程400集

    想要学习Python编程吗?猿编程python免费全套教程400集是一个不错的选择!下面我们来详细了解一下这个教程。 一、课程内容 猿编程python免费全套教程400集包含了从P…

    编程 2025-04-29
  • CMD如何升级为中心?

    本文将详细介绍在Windows操作系统下如何将CMD升级为中心,以及如何在升级后使用CMD中心进行操作。 一、下载Windows Terminal Windows Terminal…

    编程 2025-04-29
  • 如何使用GPU加速运行Python程序——以CSDN为中心

    GPU的强大性能是众所周知的。而随着深度学习和机器学习的发展,越来越多的Python开发者将GPU应用于深度学习模型的训练过程中,提高了模型训练效率。在本文中,我们将介绍如何使用G…

    编程 2025-04-29

发表回复

登录后才能评论