pandas基本使用

pandas

simple introduce

Pandas 是非常著名的开源数据处理库,我们可以通过它完成对数据集进行快速读取、转换、过滤、分析等一系列操作。除此之外,Pandas 拥有强大的缺失数据处理与数据透视功能,可谓是数据预处理中的必备利器。

其基于 NumPy 开发,该工具是 Scipy 生态中为了解决数据分析任务而设计。

knowledge point

1.数据类型

  • 1.Series(一维数组)

    • 基本结构:pandas.Series(data=None, index=None)
    • import numpy as np
      s = pd.Series(np.random.randn(5))
      s
  • 2.DataFrame(二维数组)

    • 基本结构:pandas.DataFrame(data=None, index=None, columns=None)

    • compare with Series

      • pd.Series(np.random.randint(5,size=(5,)))
      • pd.DataFrame(np.random.randint(5, size=(2, 4)))
  • 3.Panel(三维数组)

  • 4.Panel4D(四维数组)

  • 5.PanelIND(更多维数组)

2.数据读取

  • df = pd.read_csv()#()中填入相对地址或者网络url

  • df.head(5)#默认显示前五条

  • df.tail(7)#指定显示后7条

  • df.describe()

    • Pandas 还提供了统计和描述性方法,方便你从宏观的角度去了解数据集。describe() 相当于对数据集进行概览,会输出该数据集每一列数据的计数、最大值、最小值等。
  • df.values

    • Pandas 基于 NumPy 开发,所以任何时候你都可以通过 .values 将 DataFrame 转换为 NumPy 数组。
  • df.index # 查看索引

  • df.columns # 查看列名

  • df.shape # 查看形状

3.数据选取

  • 基于索引数字选择¶

    • 简单介绍

      • 整数。例如:5
        
      • 整数构成的列表或数组。例如:[1, 2, 3]
        
      • 布尔数组。
        
      • 可返回索引值的函数或参数。
        
    • df.iloc[:3]

      • 首先,我们可以选择前 3 行数据。这和 Python 或者 NumPy 里面的切片很相似。
    • df.iloc[5]

      • 选定一行
    • df.iloc[5:6]

      • 也是选定第五行
    • df.iloc[[1, 3, 5]]

      • 所以,很简单。如果你想要选择 2,4,6 行,可以这样做。
      • [[行],[列]]
    • df.iloc[:, 1:4]

  • 基于标签名称选择

    • 简单介绍

      • 单个标签。例如:2'a',这里的 2 指的是标签而不是索引位置。
        
      • 列表或数组包含的标签。例如:['A', 'B', 'C']
      • 切片对象。例如:'A':'E',注意这里和上面切片的不同之处,首尾都包含在内。
        
      • 布尔数组。
        
      • 可返回标签的函数或参数。
        

4.数据删减

  • Pandas 中,以 .drop 开头的方法都与数据删减有关。

  • df.drop(labels=['Median Age', 'Total Males'], axis=1)

  • df.drop_duplicates()

    • 则通常用于数据去重,即剔除数据集中的重复值。使用方法非常简单,默认情况下,它会根据所有列删除重复的行。也可以使用 subset 指定要删除的特定列上的重复项,要删除重复项并保留最后一次出现,请使用 keep='last'。
  • df.dropna()

    • 其主要的用途是删除缺少值,即数据集中空缺的数据列或行。

5.数据填充

  • 检测缺失值

    • df.isna()
    • df.notna()
  • 填充缺失值

    • df.fillna()

      • 填充前面的值

        • df.fillna(method='pad')

        • df.fillna(method='bfill')

        • df.fillna(method='pad', limit=1)

          • 我们可以通过 limit= 参数设置连续填充的限制数量。
        • df.fillna(df.mean()['C':'E'])

    • df_interpolate = df.interpolate()
      df_interpolate

      • 我们可以通过 interpolate() 方法完成线性插值。

数据可视化

    • NumPy,Pandas,Matplotlib 构成了一个完善的数据分析生态圈,所以 3 个工具的兼容性也非常好,甚至共享了大量的接口。当我们的数据是以 DataFrame 格式呈现时,可以直接使用 Pandas 提供的 DataFrame.plot 方法调用 Matplotlib 接口绘制常见的图形。
    • df_interpolate.plot()
    • df_interpolate.plot(kind='bar')
posted @   jerry-autumn  阅读(56)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示