samwellwang

samwellwang

coder
twitter

python pandas

Python Pandas 是一个数据处理和分析的强大工具,它提供了一种灵活的、高效的、可扩展的数据结构,可以帮助我们轻松地处理和分析各种数据。在本文中,我们将介绍 Pandas 的基本概念和使用方法,包括常用方法和参数、小技巧以及可能会遇到的坑。

Pandas 的基本概念#

Pandas 的核心数据结构是 Series 和 DataFrame。Series 是一维数组,可以存储任何类型的数据,包括整数、浮点数、字符串等。DataFrame 是二维表格,可以看作是由多个 Series 组成的。每个 Series 代表一列数据,而每行则代表一个观测值。

Pandas 还提供了一些其他的数据结构,比如 Panel 和 Panel4D,但在实际应用中,我们主要使用 Series 和 DataFrame。

Pandas 的使用方法#

数据读取#

首先,我们需要从文件或数据库中读取数据。Pandas 支持多种数据格式,包括 CSV、Excel、SQL 等。以下是读取 CSV 文件的示例代码:

import pandas as pd

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

数据清洗#

在读取数据后,我们需要对数据进行清洗。数据清洗包括去除重复值、填充缺失值等操作。以下是去除重复值和填充缺失值的示例代码:

# 去除重复值
df.drop_duplicates(inplace=True)

# 填充缺失值
df.fillna(0, inplace=True)

数据筛选#

在清洗完数据后,我们需要对数据进行筛选。Pandas 提供了多种筛选方法,包括按行、按列、按条件等。以下是按条件筛选的示例代码:

# 按条件筛选
df = df[df['age'] > 18]

数据分组#

在筛选完数据后,我们可能需要对数据进行分组。Pandas 提供了 groupby 方法来实现数据分组。以下是按照性别进行分组的示例代码:

# 按照性别进行分组
grouped = df.groupby('gender')

数据统计#

在分组后,我们可以对数据进行统计。Pandas 提供了多种统计方法,包括计数、求和、均值等。以下是计算每个分组中年龄的平均值的示例代码:

# 计算每个分组中年龄的平均值
grouped['age'].mean()

Pandas 的常用方法和参数#

DataFrame 常用方法#

  • head (n):返回前 n 行数据。
  • tail (n):返回后 n 行数据。
  • info ():返回 DataFrame 的基本信息。
  • describe ():返回 DataFrame 的统计信息。
  • dropna ():删除缺失值。
  • fillna (value):填充缺失值。
  • drop_duplicates ():去除重复值。
  • groupby ():按照某一列进行分组。

DataFrame 常用参数#

  • index_col:指定某一列为索引列。
  • header:指定某一行为列名。
  • sep:指定分隔符。
  • na_values:指定缺失值。
  • dtype:指定每一列的数据类型。

Series 常用方法#

  • value_counts ():返回每个值出现的次数。
  • unique ():返回不重复的值。
  • nunique ():返回不重复值的数量。
  • isnull ():判断是否为缺失值。
  • notnull ():判断是否不为缺失值。

Series 常用参数#

  • name:指定 Series 的名称。

Pandas 的小技巧#

自动识别格式问题#

在读取 CSV 文件时,有时会出现自动识别格式错误的问题。例如,有些 CSV 文件中的数字可能带有逗号分隔符(例如 1,000),而 Pandas 默认情况下会将逗号视为千位分隔符,导致读取出来的数字不正确。

解决这个问题的方法是在读取 CSV 文件时指定 decimal 参数为逗号,如下所示:

df = pd.read_csv('data.csv', decimal=',')

或者不让它自动识别,直接指定 dtype 参数为 str,如下所示:

df = pd.read_csv('data.csv', dtype=str)

快速查看数据#

在处理数据时,我们经常需要查看数据的前几行或后几行。可以使用 head 和 tail 方法来实现。另外,Pandas 还提供了一个快速查看数据的方法 ——sample。该方法可以随机抽取指定数量的行,并返回一个新的 DataFrame。

以下是使用 sample 方法随机抽取 5 行数据的示例代码:

df.sample(5)

快速统计数据#

在统计数据时,我们经常需要计算某一列或某几列的总和、平均值等。可以使用 sum、mean 等方法来实现。另外,Pandas 还提供了一个快速统计数据的方法 ——agg。该方法可以对指定列进行多种统计操作,并返回一个新的 DataFrame。

以下是使用 agg 方法对 age 列进行统计操作的示例代码:

df.agg({'age': ['sum', 'mean', 'max', 'min']})

Pandas 可能会遇到的坑#

编码问题#

在读取 CSV 文件时,有时会出现编码问题。例如,CSV 文件采用了 UTF-8 编码,而 Pandas 默认情况下采用了 ASCII 编码,导致读取出来的中文字符乱码。

解决这个问题的方法是在读取 CSV 文件时指定 encoding 参数为 UTF-8,如下所示:

df = pd.read_csv('data.csv', encoding='utf-8')

索引问题#

在处理 DataFrame 时,有时会出现索引问题。例如,在对 DataFrame 进行某些操作时,可能会改变原来的索引列,导致后续操作出现错误。

解决这个问题的方法是在对 DataFrame 进行操作时使用 copy 方法复制一份新的 DataFrame,并对新的 DataFrame 进行操作,如下所示:

new_df = df.copy()
new_df.drop_duplicates(inplace=True)

总结#

本文介绍了 Python Pandas 的基本概念和使用方法,包括常用方法和参数、小技巧以及可能会遇到的坑。通过学习本文,相信大家已经掌握了 Pandas 的基本用法,并能够灵活地应用到实际项目中。

panbas 的的 Google 课程:#

pandas Google colab 在线课程

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。