Pandas:让你的数据像熊猫一样可爱又灵动的39个方法!

492 阅读5分钟

一、引言

Pandas 是 Python 中一个强大的数据分析库,广泛应用于数据处理、数据清洗和数据分析等领域。本文将介绍 39 个常用的 Pandas 方法,帮助你更好地掌握这个库的使用。让我们一起探索 Pandas 的魔法之旅吧!

如果你觉得这些技巧对你有帮助,不妨点赞和收藏哦!


二、五十个 Pandas 中最常用方法

1. 数据结构创建与导入导出

创建数据结构

  1. pd.Series()
    创建一个 Pandas Series。

    import pandas as pd
    series = pd.Series([1, 2, 3, 4])
    print(series)
    

    解释:pd.Series(data) 用于将列表或其他序列转换为 Pandas Series。

  2. pd.DataFrame()
    创建一个 Pandas DataFrame。

    data = {'A': [1, 2], 'B': [3, 4]}
    df = pd.DataFrame(data)
    print(df)
    

    解释:pd.DataFrame(data) 用于将字典或其他数据结构转换为 DataFrame。

数据导入与导出

  1. pd.read_csv()
    从 CSV 文件读取数据。

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

    解释:pd.read_csv(filepath) 从指定路径读取 CSV 文件并返回 DataFrame。

  2. pd.to_csv()
    将 DataFrame 保存为 CSV 文件。

    df.to_csv('output.csv', index=False)
    

    解释:df.to_csv(filepath) 将 DataFrame 保存为 CSV 文件。

  3. pd.read_excel()
    从 Excel 文件读取数据。

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

    解释:pd.read_excel(filepath) 从指定路径读取 Excel 文件并返回 DataFrame。

  4. df.to_excel()
    将 DataFrame 保存为 Excel 文件。

    df.to_excel('output.xlsx', index=False)
    

    解释:df.to_excel(filepath) 将 DataFrame 保存为 Excel 文件。


2. 数据查看与信息

查看数据

  1. df.head()
    返回 DataFrame 的前 n 行。

    print(df.head(3))
    

    解释:df.head(n) 返回 DataFrame 的前 n 行,默认 n 为 5。

  2. df.tail()
    返回 DataFrame 的后 n 行。

    print(df.tail(3))
    

    解释:df.tail(n) 返回 DataFrame 的后 n 行,默认 n 为 5。

  3. df.info()
    显示 DataFrame 的基本信息。

    df.info()
    

    解释:df.info() 显示 DataFrame 的数据类型、非空值数量等信息。

  4. df.describe()
    生成描述性统计信息。

    print(df.describe())
    

    解释:df.describe() 返回 DataFrame 中数值列的描述性统计信息。

检查缺失值

  1. df.isnull()
    检查缺失值。

    print(df.isnull())
    

    解释:df.isnull() 返回一个布尔 DataFrame,指示每个元素是否为缺失值。

  2. df.dropna()
    删除缺失值。

    df_cleaned = df.dropna()
    

    解释:df.dropna() 返回一个删除了缺失值的 DataFrame。

  3. df.fillna()
    填充缺失值。

    df_filled = df.fillna(0)
    

    解释:df.fillna(value) 用指定的值填充缺失值。


3. 数据选择与索引

按标签与位置选择

  1. df.loc[]
    按标签选择数据。

    row = df.loc[0]
    print(row)
    

    解释:df.loc[label] 根据标签选择行或列。

  2. df.iloc[]
    按位置选择数据。

    row = df.iloc[0]
    print(row)
    

    解释:df.iloc[index] 根据整数位置选择行或列。

  3. df.at[]
    访问单个标量值。

    value = df.at[0, 'A']
    print(value)
    

    解释:df.at[row, column] 返回指定单元格的值。

  4. df.iat[]
    访问单个标量值(按位置)。

    value = df.iat[0, 0]
    print(value)
    

    解释:df.iat[row_index, column_index] 返回指定位置的值。

获取列名与索引

  1. df.columns
    获取列名。

    print(df.columns)
    

    解释:df.columns 返回 DataFrame 的列名。

  2. df.index
    获取行索引。

    print(df.index)
    

    解释:df.index 返回 DataFrame 的行索引。


4. 数据处理与变换

排序与重命名

  1. df.rename()
    重命名列或索引。

    df_renamed = df.rename(columns={'A': 'Alpha'})
    

    解释:df.rename(columns={old_name: new_name}) 用于重命名列。

  2. df.sort_values()
    按列排序。

    df_sorted = df.sort_values(by='B', ascending=False)
    

    解释:df.sort_values(by=column) 按指定列排序。

数据变换

  1. df.apply()
    应用函数到 DataFrame。

    df['C'] = df['A'].apply(lambda x: x * 2)
    

    解释:df.apply(func) 将函数应用于 DataFrame 的每一列或每一行。

  2. df.shift()
    移动数据。

    df['Shifted'] = df['A'].shift(1)
    

    解释:df['column'].shift(periods) 将数据向下移动指定的行数。

  3. df.diff()
    计算离散差。

    df['Diff'] = df['A'].diff()
    

    解释:df['column'].diff() 返回相邻元素之间的差。


5. 数据聚合与分组

分组与聚合

  1. df.groupby()
    分组数据。

    grouped = df.groupby('A').sum()
    print(grouped)
    

    解释:df.groupby(column) 根据指定列分组并可以进行聚合操作。

  2. df.agg()
    分组并聚合。

    grouped = df.groupby('A').agg({'B': 'sum', 'C': 'mean'})
    

    解释:df.groupby(column).agg({column: function}) 根据列分组并聚合。

  3. df.pivot_table()
    创建数据透视表。

    pivot = df.pivot_table(values='C', index='A', columns='B', aggfunc='sum')
    

    解释:df.pivot_table() 创建一个数据透视表。


6. 数据连接与合并

合并与连接

  1. df.merge()
    合并两个 DataFrame。

    df_merged = pd.merge(df1, df2, on='key')
    

    解释:pd.merge(df1, df2) 根据指定的键合并两个 DataFrame。

  2. pd.concat()
    连接多个 DataFrame。

    df_concatenated = pd.concat([df1, df2], axis=0)
    

    解释:pd.concat([df1, df2]) 连接多个 DataFrame。


7. 数据分析与统计

统计分析

  1. df.corr()
    计算相关系数矩阵。

    correlation_matrix = df.corr()
    

    解释:df.corr() 返回 DataFrame 中数值列之间的相关系数矩阵。

  2. df.value_counts()
    计算唯一值的频率。

    counts = df['A'].value_counts()
    

    解释:df['column'].value_counts() 返回指定列的唯一值计数。


8. 数据格式转换

格式转换

  1. df.to_numpy()
    将 DataFrame 转换为 NumPy 数组。

    array = df.to_numpy()
    

    解释:df.to_numpy() 返回 DataFrame 的 NumPy 表示。

  2. df.astype()
    转换数据类型。

    df['A'] = df['A'].astype(float)
    

    解释:df.astype(type) 将列转换为指定的数据类型。


9. 其他实用方法

额外功能

  1. df.sample()
    随机抽样数据。

    sample_df = df.sample(n=3)
    

    解释:df.sample(n) 随机抽取 n 行。

  2. df.query()
    使用查询字符串选择数据。

    filtered_df = df.query('A > 1')
    

    解释:df.query('expression') 根据查询字符串筛选数据。

  3. df.pipe()
    将 DataFrame 传递给函数。

    result = df.pipe(lambda x: x['A'] + x['B'])
    

    解释:df.pipe(func) 将 DataFrame 传递给指定函数。

  4. df.memory_usage()
    查看内存使用情况。

    memory = df.memory_usage()
    

    解释:df.memory_usage() 返回 DataFrame 各列的内存使用情况。

  5. df.select_dtypes()
    选择特定数据类型的列。

    numeric_df = df.select_dtypes(include=['number'])
    

    解释:df.select_dtypes(include=[type]) 返回指定数据类型的列。

  6. df.explode()
    将列表列拆分为多行。

    df_exploded = df.explode('list_column')
    

    解释:df.explode(column) 将列表列拆分为多行。


三、结语

本文介绍了 39 个 Pandas 的常用方法,希望可以帮助到大家。在下一篇文章中,我们将深入探讨数据可视化,或者教大家如何使用 Matplotlib 和 Seaborn 进行数据可视化。

大家再见!

注:本来想写五十个方法,实在憋不出来了