赞
踩
Pandas 是非常著名的开源数据处理库,我们可以通过它完成对数据集进行快速读取、转换、过滤、分析等一系列操作。除此之外,Pandas 拥有强大的缺失数据处理与数据透视功能,可谓是数据预处理中的必备利器。
特有的数据结构是 Pandas 的优势和核心。我们可以将任意格式的数据转换为 Pandas 的数据类型,并使用 Pandas 提供的一系列方法进行转换、操作,最终得到我们期望的结果。
df = pd.read_csv("文件名.csv")
df
Pandas 提供了 head()
和 tail()
方法,它可以帮助我们只预览一小块数据。
df.head() # 默认显示前 5 条
df.tail(n) # 指定显示后 n 条
describe()
相当于对数据集进行概览,会输出该数据集每一列数据的计数、最大值、最小值等。
df.describe()
df.values
将 DataFrame 转换为 NumPy 数组
df.index # 查看索引
df.columns # 查看列名
df.shape # 查看形状
选择前 3 行数据
df.iloc[:3]
我们还可以选择特定的一行
df.iloc[5]
df.iloc[]
的 [[行],[列]] 里面可以同时接受行和列的位置。
因此,选择 1,3,5 行的代码应该是
df.iloc[[1, 3, 5]]
选择第 2-4 列
df.iloc[:, 1:4]
选择前 3 行
df.loc[0:2]
选择 1,3,5 行
df.loc[[0, 2, 4]]
选择列名为“列名n”到“列名m”的列
df.loc[:, '列名n':'列名m']
选择 1,3 行和 列名为"列名i"后面的列
df.loc[[0, 2], '列名i':]
虽然我们可以通过数据选择方法从一个完整的数据集中拿到我们需要的数据,但有的时候直接删除不需要的数据更加简单直接。Pandas 中,以 .drop 开头的方法都与数据删减有关。
DataFrame.drop
可以直接去掉数据集中指定的列和行。指定 labels 标签参数,通过 axis 指定按列或按行删除即可。
df.drop(labels=['Median Age', 'Total Males'], axis=1)
DataFrame.drop_duplicates
则通常用于数据去重,即剔除数据集中的重复值。通过指定去除重复值规则,以及 axis
按列还是按行去除即可。
df.drop_duplicates()
DataFrame.dropna
删除缺少值,即数据集中空缺的数据列或行
df.dropna()
在真实的生产环境中,我们需要处理的数据文件很大几率会遇到的情况就是缺失值。
缺失值主要是指数据丢失的现象,也就是数据集中的某一块数据不存在。除此之外、存在但明显不正确的数据也被归为缺失值一类。
Pandas 中用于检测缺失值主要用到两个方法,分别是:isna()
和 notna()
,故名思意就是「是缺失值」和「不是缺失值」。默认会返回布尔值用于判断。
通过 isna()
和 notna()
中的一个即可确定数据集中的缺失值
df.isna()
df.notna()
填充缺失值 fillna()
方法
用相同的标量值替换 NaN,比如用 0
df.fillna(0)
通过参数,将缺失值前面或者后面的值填充给相应的缺失值
df.fillna(method='pad') # 使用缺失值前面的值进行填充
df.fillna(method='bfill') # 使用缺失值后面的值进行填充
通过 limit=
参数设置连续填充的限制数量
df.fillna(method='pad', limit=1) # 最多填充一项
通过 Pandas 自带的求平均值方法等来填充特定列或行,对 C 列到 E 列用平均值填充
df.fillna(df.mean()['C':'E'])
插值是数值分析中一种方法。简而言之,就是借助于一个函数(线性或非线性),再根据已知数据去求解未知数据的值。插值在数据领域非常常见,它的好处在于,可以尽量去还原数据本身的样子。
通过 interpolate()
方法完成线性插值
df_interpolate = df.interpolate()
df_interpolate
对于 interpolate()
支持的插值算法,也就是 method=
。下面给出几条选择的建议:
method='quadratic'
二次插值。method='pchip'
。method='akima'
。当然,最后提到的 method='akima'
,需要你的环境中安装了 Scipy 库。除此之外,method='barycentric'
和 method='pchip'
同样也需要 Scipy 才能使用。
当我们的数据是以 DataFrame 格式呈现时,可以直接使用 Pandas 提供的 DataFrame.plot 方法调用
Matplotlib 接口绘制常见的图形。
使用插值后的数据 df_interpolate 绘制线形图
df_interpolate.plot()
选择其他样式的图形通过指定 kind= 参数即可
df_interpolate.plot(kind='bar')
Pandas常用的还有:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。