首页 > 其他 > 详细

Pandas 统计分析基础

时间:2021-04-01 23:31:04      阅读:38      评论:0      收藏:0      [点我收藏+]

Pandas 统计分析基础

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

文本文件读取

读取文本文件。

pd.read_table(
    [‘filepath_or_buffer‘, "sep=‘\\t‘", ‘delimiter=None‘, "header=‘infer‘", ‘names=None‘, ‘index_col=None‘, ‘usecols=None‘, ‘squeeze=False‘, ‘prefix=None‘, ‘mangle_dupe_cols=True‘, ‘dtype=None‘, ‘engine=None‘, ‘converters=None‘, ‘true_values=None‘, ‘false_values=None‘, ‘skipinitialspace=False‘, ‘skiprows=None‘, ‘nrows=None‘, ‘na_values=None‘, ‘keep_default_na=True‘, ‘na_filter=True‘, ‘verbose=False‘, ‘skip_blank_lines=True‘, ‘parse_dates=False‘, ‘infer_datetime_format=False‘, ‘keep_date_col=False‘, ‘date_parser=None‘, ‘dayfirst=False‘, ‘iterator=False‘, ‘chunksize=None‘, "compression=‘infer‘", ‘thousands=None‘, "decimal=b‘.‘", ‘lineterminator=None‘, ‘quotechar=\‘"\‘‘, ‘quoting=0‘, ‘escapechar=None‘, ‘comment=None‘, ‘encoding=None‘, ‘dialect=None‘, ‘tupleize_cols=None‘, ‘error_bad_lines=True‘, ‘warn_bad_lines=True‘, ‘skipfooter=0‘, ‘doublequote=True‘, ‘delim_whitespace=False‘, ‘low_memory=True‘, ‘memory_map=False‘, ‘float_precision=None‘],
)

读取 CSV 文件。

pd.read_csv(
    [‘filepath_or_buffer‘, "sep=‘,‘", ‘delimiter=None‘, "header=‘infer‘", ‘names=None‘, ‘index_col=None‘, ‘usecols=None‘, ‘squeeze=False‘, ‘prefix=None‘, ‘mangle_dupe_cols=True‘, ‘dtype=None‘, ‘engine=None‘, ‘converters=None‘, ‘true_values=None‘, ‘false_values=None‘, ‘skipinitialspace=False‘, ‘skiprows=None‘, ‘nrows=None‘, ‘na_values=None‘, ‘keep_default_na=True‘, ‘na_filter=True‘, ‘verbose=False‘, ‘skip_blank_lines=True‘, ‘parse_dates=False‘, ‘infer_datetime_format=False‘, ‘keep_date_col=False‘, ‘date_parser=None‘, ‘dayfirst=False‘, ‘iterator=False‘, ‘chunksize=None‘, "compression=‘infer‘", ‘thousands=None‘, "decimal=b‘.‘", ‘lineterminator=None‘, ‘quotechar=\‘"\‘‘, ‘quoting=0‘, ‘escapechar=None‘, ‘comment=None‘, ‘encoding=None‘, ‘dialect=None‘, ‘tupleize_cols=None‘, ‘error_bad_lines=True‘, ‘warn_bad_lines=True‘, ‘skipfooter=0‘, ‘doublequote=True‘, ‘delim_whitespace=False‘, ‘low_memory=True‘, ‘memory_map=False‘, ‘float_precision=None‘],
)
参数名称 说明
filepath 文件路径
sep 分隔符
header 选择某行当作列名
names 接受 array 表示列名
index_col 索引列的位置
dtype 写入的数据类型
engine 数据解析引擎
nrows 读取前 n 行
pd.read_table()
pd.read_csv()

文本文件存储

以 CSV 文件格式存储。

pd.DataFrame.to_csv(
    [‘self‘, ‘path_or_buf=None‘, "sep=‘,‘", "na_rep=‘‘", ‘float_format=None‘, ‘columns=None‘, ‘header=True‘, ‘index=True‘, ‘index_label=None‘, "mode=‘w‘", ‘encoding=None‘, ‘compression=None‘, ‘quoting=None‘, ‘quotechar=\‘"\‘‘, "line_terminator=‘\\n‘", ‘chunksize=None‘, ‘tupleize_cols=None‘, ‘date_format=None‘, ‘doublequote=True‘, ‘escapechar=None‘, "decimal=‘.‘"],
)
参数 说明
path_or_buf 文件路径
sep 分隔符
na_rep 缺失值
columns 写出的列名
header 是否将列名写出
index 是否将行名(索引)写出
index_label 索引名
mode 数据写入模式
encoding 存储文件的编码格式
pd.DataFrame().to_csv()

读/写 Excel 文件

Excel 文件读取。

pd.read_excel(
    [‘io‘, ‘sheet_name=0‘, ‘header=0‘, ‘names=None‘, ‘index_col=None‘, ‘usecols=None‘, ‘squeeze=False‘, ‘dtype=None‘, ‘engine=None‘, ‘converters=None‘, ‘true_values=None‘, ‘false_values=None‘, ‘skiprows=None‘, ‘nrows=None‘, ‘na_values=None‘, ‘parse_dates=False‘, ‘date_parser=None‘, ‘thousands=None‘, ‘comment=None‘, ‘skipfooter=0‘, ‘convert_float=True‘, ‘**kwds‘],
)
参数名称 说明
io 文件路径
sheetname Excel 内数据的分表位置
header 将某行作为列名
names 表示列名
index_col 索引列的位置
dtype 写入的数据类型(列名为 key,数据格式为 values)。

Excel 文件的储存。

pd.DataFrame.to_excel(
    [‘self‘, ‘excel_writer‘, "sheet_name=‘Sheet1‘", "na_rep=‘‘", ‘float_format=None‘, ‘columns=None‘, ‘header=True‘, ‘index=True‘, ‘index_label=None‘, ‘startrow=0‘, ‘startcol=0‘, ‘engine=None‘, ‘merge_cells=True‘, ‘encoding=None‘, "inf_rep=‘inf‘", ‘verbose=True‘, ‘freeze_panes=None‘],
)
pd.read_excel()
pd.DataFrame.to_excel()

DataFrame 常用操作

基础属性:values, index, columns, dtypes,size、ndim、shape。

DataFrame 的单列数据是一个 Sereies 。

以字典的方式访问某一个 key 的值(列名)。

也可以直接的 . 一个列名。

也可将多个列索引名称放入一个列表。

可通过 headtail 方法得到多行数据——开始和末尾的连续数据。

pd.DataFrame.head(self, n=5)
pd.DataFrame.tail(self, n=5)
pd.DataFrame.head()
pd.DataFrame.tail()

loc 和 iloc 访问方式

loc 方法针对 DataFrame 的索引名称的切片方法,能够实现所有单层索引切片操作。

pd.DataFrame.loc[行索引名称或条件, 列索引名称]

Access a group of rows and columns by label(s) or a boolean array.

.loc[] is primarily label based, but may also be used with a
boolean array.

iloc 接受的必须是行索引和列索引的位置。

pd.DataFrame.iloc[行索引位置, 列索引位置]

Purely integer-location based indexing for selection by position.

.iloc[] is primarily integer position based (from 0 to
length-1 of the axis), but may also be used with a boolean
array.

使用 loc 时,前后均为闭区间;

使用 iloc 时,为前闭后开。

pd.DataFrame.loc[]
pd.DataFrame.iloc[]

loc 内可以传入表达式,结果返回满足表达式的值。

iloc 不能接受表达式,因为条件表达式返回的为一个布尔值 Series,而 iloc 可以接收的数据类型并不包括 Series。但可以通过取出 .values 传入。

也可使用 ix 切片,此方法更像两种的融合。

pd.DataFrame.ix[行索引的名称或位置或者条件, 列索引名称或位置]

A primarily label-location based indexer, with integer position
fallback.

Warning: Starting in 0.20.0, the .ix indexer is deprecated, in
favor of the more strict .iloc and .loc indexers.

当索引名称和位置存在部分重叠时,ix 默认优先识别名称。

pd.DataFrame.ix[]

更改 DataFrame 中的数据

直接将部分数据提取出来重新赋值。

此方法无法撤销。

为 DataFrame 增添数据

添加一列:新建一个列索引,并对索引下的数据进行赋值。

删除某行或某列数据

pd.DataFrame.drop(
    [‘self‘, ‘labels=None‘, ‘axis=0‘, ‘index=None‘, ‘columns=None‘, ‘level=None‘, ‘inplace=False‘, "errors=‘raise‘"],
)
参数名称 说明
labels 代表删除的行或列标签
axis 操作的轴向
level 标签所在的级别
inplace 是否对原数据生效
pd.DataFrame.drop()

描述分析 DataFrame 数据

数值特征

最小值、均值、中位数、最大值、四分位数、极差、标准差、方差、协方差和变异系数等。

Pandas 基于 NumPy 库。

函数名称 说明
np.min 最小值
np.mean 均值
np.median 中位数
np.var 方差
np.max 最大值
np.ptp 极差
np.std 标准差
np.cov 协方差

可直接通过 describe 方法一次性得出数据框中数值特征的非空值数目、均值、四分位数和标准差。

pd.DataFrame.describe(self, percentiles=None, include=None, exclude=None)

pandas 中描述性统计方法

方法名称 说明
min 最小值
mean 均值
median 中位数
var 方差
sem 标准误差
skew 样本偏度
quantile 四分位数
describe 描述统计
max 最大值
ptp 极差
std 标准差
cov 协方差
mode 众数
kurt 样本峰度
count 非空值数目
mad 平均绝对离差
pd.DataFrame.describe()

类别型特征

描述类别型特征的分布状况,可用频数统计表。

pandas 库实现的方法为 value_counts

pd.Series.value_counts(
    [‘self‘, ‘normalize=False‘, ‘sort=True‘, ‘ascending=False‘, ‘bins=None‘, ‘dropna=True‘],
)

pandas 还提供了 category 类,可使用 astype 方法将目标特征的数据类型转换为 category 类型。

pd.Series.astype(self, dtype, copy=True, errors=‘raise‘, **kwargs)

describe 方法同样可对 category 类型的数据进行描述性统计,4个统计量分别为列非空元素数目、类别的数目、数目最多的类别和数目最多类别的数目。

pd.Series.value_counts()
pd.Series.astype()

Pandas 统计分析基础

原文:https://www.cnblogs.com/kanglonggege/p/14607243.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!