首页 > 编程语言 >Python中的常用的数据预处理所需工具

Python中的常用的数据预处理所需工具

时间:2024-08-22 10:55:55浏览次数:13  
标签:常用 key Python df1 column DataFrame df pd 预处理

Jupyter对于数据预处理的重要功能是支持用逐行编写和运行代码,实时查看结果。

Jupyter 是一个开源的交互式计算环境,它允许用户以网页的形式编写和运行代码,以及创建和共享文档,这些文档可以包含实时代码、方程、可视化和解释性文本。Jupyter 的主要组件包括:

1. Jupyter Notebook:一个交互式 Web 应用程序,允许用户创建和共享包含代码、方程、可视化和叙述文本的文档。这些文档被称为 "notebooks"。

2. JupyterLab:是 Jupyter Notebook 的下一代界面,提供了更丰富的用户界面和更强大的功能,支持多文档工作,以及对扩展插件的支持。

3. JupyterHub:一个多用户服务,允许多个用户同时使用 Jupyter Notebook,适用于教育和研究环境。

4. IPython:一个强大的 Python 解释器,支持交互式 Python 编程,也是 Jupyter Notebook 的核心组件之一。

Dataframe 是一种在数据分析和数据处理中常用的数据结构,特别是在使用 Python 的数据分析库 Pandas 时。Dataframe 提供了一种灵活、高效的方式来操作和分析表格数据。Dataframe 是二维的,可以想象成一个 Excel 电子表格或 SQL 数据库表,有行和列。

接下来将介绍各种方便处理Dataframe的函数。

一:创建DataFrame

  • pd.read_csv('file.csv'): 从CSV文件读取数据到DataFrame。
  • pd.read_excel('file.xlsx'): 从Excel文件读取数据到DataFrame。
  • pd.read_sql(query, connection): 从SQL数据库读取数据到DataFrame。

还可以创建数据形成DataFrame:

import pandas as pd

# 示例数据
data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'City': ['New York', 'Los Angeles', 'Chicago']
}

# 使用数据创建DataFrame
df = pd.DataFrame(data)
df

结果如下:

二:查看数据

  • df.head(): 查看DataFrame的前几行。
  • df.tail(): 查看DataFrame的最后几行。
  • df.info(): 查看DataFrame的信息。
  • df.describe(): 显示DataFrame的统计摘要。

只有df则展示前几行和最后几行,当数据较多时会省略中间行并显示总行数和总列数。

在 Pandas 库中,df.info()df.describe() 是两个非常有用的函数,它们提供了 DataFrame 的不同信息摘要。下面是对它们的详细介绍:

df.info()

df.info() 函数用于快速查看 DataFrame 的概览信息。当你对一个 DataFrame 调用 info() 方法时,它会显示以下内容:

  • 数据类型:DataFrame 中每列的数据类型。
  • 非空值:每列的非空值数量。
  • 内存使用情况:DataFrame 所占用的内存量。
df.info()

结果如下:

df.describe()

df.describe() 函数用于生成 DataFrame 的统计摘要,它提供了数值型列的描述性统计信息。当你对一个 DataFrame 调用 describe() 方法时,它会显示以下内容:

  • 计数(Count):每列的非空值数量。
  • 平均值(Mean):数值列的平均值。
  • 标准差(Std):数值列的标准差,表示数据的离散程度。
  • 最小值(Min):数值列的最小值。
  • 25%分位数(25%):数值列的第一四分位数,即所有值中最小的25%。
  • 50%分位数(50%)或中位数(Median):数值列的中位数。
  • 75%分位数(75%):数值列的第三四分位数,即所有值中最大的25%。
  • 最大值(Max):数值列的最大值。

describe() 默认只对数值型列进行统计,但你也可以通过设置 include 参数为 'all' 来包括非数值型列的计数和频率。

df.describe()

结果如下:

三:选择与筛选数据

在 Pandas 中选择行或列的方法非常多样,下面是一些常用的选择行和列的方法:

选择列的方法

1. 通过列名:
   使用列名来选择单个列:
 

column_a = df['column_name']

2. 通过列索引:
   使用列的位置索引来选择列(从0开始计数):
   

first_column = df.iloc[:, 0]  # 选择第一列

3. 选择多个列:
   通过列名的列表来选择多个列:
 

columns = df[['column_name1', 'column_name2']]

选择行的方法

1. 通过行标签:
   使用 `.loc` 通过行标签来选择行:
 

row = df.loc[row_label]

2. 通过行的布尔条件:
   使用布尔索引选择满足条件的行:

filtered_rows = df[df['column_name'] > value]

或者使用:

df.query('column > value')

使用查询字符串筛选数据。

3. 通过行的位置:
   使用 `.iloc` 通过行的位置索引来选择行:

first_row = df.iloc[0]  # 选择第一行

4. 选择多个特定的行:
   使用行标签的列表来选择多行:
  

specific_rows = df.loc[row_labels_list]

5. 选择行的范围:
   使用行标签的范围来选择行:

rows_range = df.loc[start_row_label:end_row_label]

这些方法可以单独使用,也可以组合使用来选择 DataFrame 中的行和列。通过这些方法,你可以灵活地对数据进行切片、过滤和操作。

四:排序数据

  • df.sort_values(by='column'): 根据列值排序。
  • df.sort_index(): 根据索引排序。

五:数据清理

  • df.drop('column', axis=1): 删除列。
  • df.drop_duplicates(): 删除重复行。
  • df.fillna(value): 填充缺失值。

六:数据转换

  • df.rename(columns={'old_name': 'new_name'}): 重命名列。
  • df.assign(new_column=value): 添加新列。
  • df.apply(function): 对DataFrame中的每个元素应用函数。

七:数据聚合

在Pandas中,groupbyagg 是两个非常强大的函数,它们允许你对数据集进行分组和聚合操作。下面是对这两个函数的示例和解释:

df.groupby('column').sum()

groupby 函数用于根据一个或多个键将数据分组。sum 是一个聚合函数,用于计算每个组的总和。当你使用 groupby 后跟 sum,你可以计算每个组在指定列上的总和。

示例:

假设我们有一个DataFrame df,其中包含有关销售的数据,包括日期、产品和销售额。

import pandas as pd

# 创建示例DataFrame
data = {
    'date': ['2024-01-01', '2024-01-01', '2024-01-02', '2024-01-02'],
    'product': ['Apple', 'Banana', 'Apple', 'Cherry'],
    'sales': [10, 15, 20, 30]
}
df = pd.DataFrame(data)

# 按产品分组并计算每组的销售额总和
grouped_sum = df.groupby('product').sales.sum()

print(grouped_sum)

输出将是每个产品的总销售额。结果如下:

df.agg({'column': 'function'})

agg 函数(或 aggregate)允许你对DataFrame的列应用一个或多个聚合函数。你可以为不同的列指定不同的聚合函数。

示例:

继续使用上面创建的 df DataFrame,我们可以使用 agg 来对销售额应用不同的聚合函数。

# 对销售额使用不同的聚合函数:总和、平均值和最大值
aggregated_data = df.agg({
    'sales': ['sum', 'mean', 'max']
})

print(aggregated_data)

这将输出一个DataFrame,其中包含销售额的总和、平均值和最大值。结果如下:

两个聚合函数的结合示例

假设我们想要对不同的产品按日期分组,并计算每个组的销售额总和和平均值。

# 对产品和日期进行分组,并计算每个组的销售额总和和平均值
grouped_agg = df.groupby(['product', 'date']).agg({
    'sales': ['sum', 'mean']
})

print(grouped_agg)

这将输出一个多层索引的DataFrame,显示每个产品在每个日期的销售额总和和平均值。结果如下:

通过这些示例,你可以看到 groupbyagg 如何一起使用来执行复杂的数据聚合任务,这对于数据分析和数据科学非常有用。

八:数据合并

  • pd.concat([df1, df2]): 沿着一条轴将多个DataFrame对象堆叠到一起。
  • pd.merge(df1, df2, on='column'): 根据一个或多个键将不同DataFrame中的行连接起来。

这两个函数是Pandas中用于数据合并和连接的基本工具。下面是使用 `pd.concat` 和 `pd.merge` 的Python示例。

pd.concat([df1, df2])

`pd.concat` 用于将多个DataFrame沿着一条轴堆叠在一起。默认情况下,它是沿着行(axis=0)进行堆叠,但你也可以选择沿着列堆叠(axis=1)。

示例:
 

import pandas as pd

# 创建两个DataFrame
df1 = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6]
})

df2 = pd.DataFrame({
    'A': [7, 8, 9],
    'B': [10, 11, 12]
})

# 沿着行堆叠这两个DataFrame
result_concat = pd.concat([df1, df2])

result_concat

输出将是两个DataFrame垂直堆叠的结果。结果如下:

pd.merge(df1, df2, on='column')

`pd.merge` 用于根据一个或多个键将不同DataFrame中的行连接起来。这类似于SQL中的JOIN操作。你可以指定不同的连接方式,如内连接、外连接等。

 示例:

# 创建两个DataFrame,它们有一个共同的列'key'
df1 = pd.DataFrame({
    'key': ['K0', 'K1', 'K2', 'K3'],
    'A': ['A0', 'A1', 'A2', 'A3']
})

df2 = pd.DataFrame({
    'key': ['K0', 'K1', 'K2', 'K3'],
    'B': ['B0', 'B1', 'B2', 'B3']
})

# 根据'key'列将df1和df2进行内连接
result_merge = pd.merge(df1, df2, on='key')

result_merge

输出将是两个DataFrame根据'key'列匹配的行合并的结果。结果如下:

更复杂的示例:
假设我们有不同的连接条件和连接方式。

# 创建第三个DataFrame,它的'key'列有不同的值
df3 = pd.DataFrame({
    'key': ['K0', 'K1', 'K4', 'K5'],
    'C': ['C0', 'C1', 'C4', 'C5']
})
df1 = pd.DataFrame({
    'key': ['K0', 'K1', 'K2', 'K3'],
    'A': ['A0', 'A1', 'A2', 'A3']
})
# 执行左连接,以df1为准,即使df2和df3中没有匹配的'key'
result_merge_left = pd.merge(df1, df3, on='key', how='left')

result_merge_left

这将输出一个包含df1所有行的DataFrame,如果df3中有匹配的'key',则包括来自df3的列,否则相应的列将包含NaN。结果如下:

`pd.concat` 和 `pd.merge` 是处理Pandas DataFrame时不可或缺的工具,它们允许你以多种方式合并和连接数据集。


九:数据输出

  • df.to_csv('file.csv'): 将DataFrame输出到CSV文件。
  • df.to_excel('file.xlsx'): 将DataFrame输出到Excel文件。
  • df.to_sql('table_name', connection): 将DataFrame输出到SQL数据库。

这些函数是处理DataFrame时最常用的,但Pandas库提供了更多高级功能和细节控制,可以根据具体需求进行探索。

点下关注,分下更多有关AI,数据分析和量化金融的实用教程和实战项目。

标签:常用,key,Python,df1,column,DataFrame,df,pd,预处理
From: https://blog.csdn.net/2301_80651329/article/details/141407777

相关文章

  • 【Python脚本】刚度矩阵格式转换
    对于1-2-3坐标系:应力矩阵如下:\[\left.[\sigma]=\left[\begin{array}{ccc}\sigma_{11}&\sigma_{12}&\sigma_{13}\\\sigma_{12}&\sigma_{22}&\sigma_{23}\\\sigma_{13}&\sigma_{23}&\sigma_{33}\end{array}\right.\right]\]张量应变矩阵如下:......
  • python开发环境安装-包含Anaconda的安装配置和pycharm的安装
    一、需要得安装包1、 Anaconda3-5.3.0-Windows-x86_64.exe python环境2、pycharm-professional-2021.2.2.exe     开发工具3、ide-eval-resetter-2.1.13.zip            破解工具二、Anaconda安装Anaconda,中文大蟒蛇,是一个开源的Python发行版本。1......
  • 学Python必不可少的语言开发,程序员赶紧收藏!
      Python是一种广泛使用的高级编程语言,以其简洁易读的语法和强大的库支持而闻名。它支持多种编程范式,包括面向对象、命令式和函数式编程。Python的应用领域非常广泛,包括网络编程、数据分析、人工智能、机器学习、Web开发、自动化运维等。开发环境搭建安装Python:......
  • python configparser操作配置文件
    一、configparser概述configparser是Pyhton标准库中用来解析配置文件的模块;Python2.x中名为ConfigParser,3.x已改名为configParser二、配置文件的格式常见的配置文件后缀:.ini,.conf等,主要结构为包括以下的文本信息:sections(段)keys(properties\键)values(值)格式如下......
  • Docker常用命令
    本篇针对在初步了解Docker基础知识之后对实操的进一步提升一、帮助启动类命令启动docker:systemctlstartdocker停止docker:systemctlstopdocker重启docker:systemctlrestartdocker查看docker状态:systemctlstatusdocker开机启动:systemctlenabledocker......
  • 提升代码迭代速度的Python重载方法使用详解
        概要在Python编程中,模块是组织代码的重要工具,它们使得代码更加模块化和易于维护。在开发和调试过程中,有时需要对已经导入的模块进行修改并重新加载以应用更改。Python提供了一个名为reload的模块,用于在不重新启动解释器的情况下重新加载已经导入的模块。本文将详......
  • Python代码部署之用Kubernetes实现自动化详解
    概要在现代软件开发中,容器化和微服务架构逐渐成为主流,而Kubernetes则是管理容器化应用的事实标准。Kubernetes(简称K8s)提供了自动化部署、扩展和管理容器化应用的强大功能。本文将详细介绍如何使用Kubernetes来部署Python代码,包括Kubernetes的基本概念、部署流程,以及通过示例......
  • C语言学习,预处理器
    C预处理器不是编译器的一部分,是编译过程中的一个单独步骤。C预处理器是一个文本替换工具,它指示编译器在编译前进行必要的预处理。 C预处理器所有命令都以井号(#)开头,它必须是第一个非空白字符,以下列出了重要的预处理程序指令:No.指令和说明1#define替换预处理器宏。2#inc......
  • Python是一种广泛使用的编程语言,其主要用途有什么?
    Python是一种广泛使用的编程语言,其主要用途包括但不限于以下几个方面:1.Web开发Python拥有众多Web开发框架,如Django和Flask,这些框架使得开发者能够高效地构建和维护Web应用程序。许多著名的网站,如YouTube、Instagram以及国内的豆瓣等,都是使用Python进行开发的。2.数据科学......
  • Python入门最完整的基础知识大全【纯干货,建议收藏】!
    主要内容如下:1.用Python做数据分析的重要性Python在数据分析和交互、探索性计算以及数据可视化等方面都显得比较活跃,这就是Python作为数据分析的原因之一,python拥有numpy、matplotlib、scikit-learn、pandas、ipython等工具在科学计算方面十分有优势,尤其是pandas,在处理中......