当前位置:   article > 正文

Pandas数据处理(一)_df.head()函数作用

df.head()函数作用

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

特有的数据结构Pandas 的优势和核心。我们可以将任意格式的数据转换为 Pandas 的数据类型,并使用 Pandas 提供的一系列方法进行转换、操作,最终得到我们期望的结果。

数据读取
df = pd.read_csv("文件名.csv")
df
  • 1
  • 2

Pandas 提供了 head()tail() 方法,它可以帮助我们只预览一小块数据。

df.head()  # 默认显示前 5 条
  • 1
df.tail(n)  # 指定显示后 n 条
  • 1

describe() 相当于对数据集进行概览,会输出该数据集每一列数据的计数、最大值、最小值等。

df.describe()
  • 1

df.values 将 DataFrame 转换为 NumPy 数组

df.index  # 查看索引
  • 1
df.columns  # 查看列名
  • 1
df.shape  # 查看形状
  • 1
数据选择
基于索引数字选择

选择前 3 行数据

df.iloc[:3]
  • 1

我们还可以选择特定的一行

df.iloc[5]
  • 1

df.iloc[] 的 [[行],[列]] 里面可以同时接受行和列的位置。
因此,选择 1,3,5 行的代码应该是

df.iloc[[1, 3, 5]]
  • 1

选择第 2-4 列

df.iloc[:, 1:4]
  • 1
基于标签名称选择

选择前 3 行

df.loc[0:2]
  • 1

选择 1,3,5 行

df.loc[[0, 2, 4]]
  • 1

选择列名为“列名n”到“列名m”的列

df.loc[:, '列名n':'列名m']
  • 1

选择 1,3 行和 列名为"列名i"后面的列

df.loc[[0, 2], '列名i':]
  • 1
数据删减

虽然我们可以通过数据选择方法从一个完整的数据集中拿到我们需要的数据,但有的时候直接删除不需要的数据更加简单直接。Pandas 中,以 .drop 开头的方法都与数据删减有关。

DataFrame.drop 可以直接去掉数据集中指定的列和行。指定 labels 标签参数,通过 axis 指定按列或按行删除即可。

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

DataFrame.drop_duplicates 则通常用于数据去重,即剔除数据集中的重复值。通过指定去除重复值规则,以及 axis 按列还是按行去除即可。

df.drop_duplicates()
  • 1

DataFrame.dropna 删除缺少值,即数据集中空缺的数据列或行

 df.dropna()
  • 1
数据填充

在真实的生产环境中,我们需要处理的数据文件很大几率会遇到的情况就是缺失值。

缺失值主要是指数据丢失的现象,也就是数据集中的某一块数据不存在。除此之外、存在但明显不正确的数据也被归为缺失值一类。

检测缺失值

Pandas 中用于检测缺失值主要用到两个方法,分别是:isna()notna(),故名思意就是「是缺失值」和「不是缺失值」。默认会返回布尔值用于判断。
通过 isna()notna()中的一个即可确定数据集中的缺失值

df.isna()
df.notna()
  • 1
  • 2

填充缺失值 fillna() 方法
用相同的标量值替换 NaN,比如用 0

df.fillna(0)
  • 1

通过参数,将缺失值前面或者后面的值填充给相应的缺失值

df.fillna(method='pad') # 使用缺失值前面的值进行填充
df.fillna(method='bfill') # 使用缺失值后面的值进行填充
  • 1
  • 2

通过 limit= 参数设置连续填充的限制数量

df.fillna(method='pad', limit=1)  # 最多填充一项
  • 1

通过 Pandas 自带的求平均值方法等来填充特定列或行,对 C 列到 E 列用平均值填充

df.fillna(df.mean()['C':'E'])
  • 1
插值填充

插值是数值分析中一种方法。简而言之,就是借助于一个函数(线性或非线性),再根据已知数据去求解未知数据的值。插值在数据领域非常常见,它的好处在于,可以尽量去还原数据本身的样子。

通过 interpolate() 方法完成线性插值

df_interpolate = df.interpolate()
df_interpolate
  • 1
  • 2

对于 interpolate() 支持的插值算法,也就是 method=。下面给出几条选择的建议:

  1. 如果你的数据增长速率越来越快,可以选择 method='quadratic'二次插值。
  2. 如果数据集呈现出累计分布的样子,推荐选择 method='pchip'
  3. 如果需要填补缺省值,以平滑绘图为目标,推荐选择 method='akima'

当然,最后提到的 method='akima',需要你的环境中安装了 Scipy 库。除此之外,method='barycentric'method='pchip' 同样也需要 Scipy 才能使用。

数据可视化

当我们的数据是以 DataFrame 格式呈现时,可以直接使用 Pandas 提供的 DataFrame.plot 方法调用
Matplotlib 接口绘制常见的图形。

使用插值后的数据 df_interpolate 绘制线形图

df_interpolate.plot()
  • 1

选择其他样式的图形通过指定 kind= 参数即可

df_interpolate.plot(kind='bar')
  • 1

Pandas常用的还有:

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号