赞
踩
pandas是Python的扩展库(第三方库),为Python编程语言提供 高性能、易于使用的数据结构和数据分析工具。
pandas官方文档:User Guide — pandas 2.2.2 documentation (pydata.org)
帮助:可使用help(...)查看函数说明文档(若是第三方库的函数,需先导入库)。例如:help(pd.DataFrame),help(pd.concat)
Python代码中,导入pandas:
import pandas as pd
(1-1)按索引排序
sort_index(self, axis: 'Axis' = 0, level: 'Level | None' = None, ascending: 'bool | int | Sequence[bool | int]' = True, inplace: 'bool' = False, kind: 'str' = 'quicksort', na_position: 'str' = 'last', sort_remaining: 'bool' = True, ignore_index: 'bool' = False, key: 'IndexKeyFunc' = None)
注:默认axis=0 按行轴(按索引)排序,ascending=True 升序,inplace=False 不替换原DataFrame,na_position='last' NaN值在最后。
参数axis默认为0,按行索引排序。若axis=1,则按列索引排序。
(1-2)按数值排序
sort_values(self, by, axis: 'Axis' = 0, ascending=True, inplace: 'bool' = False, kind: 'str' = 'quicksort', na_position: 'str' = 'last', ignore_index: 'bool' = False, key: 'ValueKeyFunc' = None)
注:默认axis=0 按行轴排序,ascending=True 升序,inplace=False 不替换原DataFrame,na_position='last' NaN值在最后。
参数axis默认为0,按指定列的数据排序。若axis=1,则按指定行的数据排序。
(2-1)判断重复值:duplicated
duplicated(self, subset: 'Hashable | Sequence[Hashable] | None' = None, keep: "Literal['first'] | Literal['last'] | Literal[False]" = 'first') -> 'Series'
注:默认subset=None 整行比对,keep='first' 第一次出现的数据为False 其他重复出现的为True。
(2-2)删除重复值:drop_duplicates,[~ ... ]
drop_duplicates(self, subset: 'Hashable | Sequence[Hashable] | None' = None, keep: "Literal['first'] | Literal['last'] | Literal[False]" = 'first', inplace: 'bool' = False, ignore_index: 'bool' = False) -> 'DataFrame | None'
注:默认subset=None 整行比对,keep='first' 保留第一次出现的数据,inplace=False 不替换原DataFrame,ignore_index=False 使用原索引标签。
DataFrame.duplicated(...),默认第一次出现的为False,其他重复出现的为True。
布尔数组作为索引将保留True的行,但实际应删除True(重复出现的)保留False(第一次出现的)。因此需取反,使用Tab键上方的~键,即DataFrame[~DataFrame.duplicated(...)]。
(2-3)统计不同的行 出现次数
value_counts(self, subset: 'Sequence[Hashable] | None' = None, normalize: 'bool' = False, sort: 'bool' = True, ascending: 'bool' = False, dropna: 'bool' = True)
注:默认subset=None 整行比对,normalize=False 显示出现频率,sort=True 将频率排序,ascending=False 降序排列,dropna=True 忽略NaN。
(2-4)统计指定轴上 不同数据的数量
nunique(self, axis: 'Axis' = 0, dropna: 'bool' = True) -> 'Series'
注:默认axis=0 按行轴查看(即各列不同数据的数量),dropna=True 忽略NaN。
缺省值:NaN(空值,非数值)。None和np.NaN都是缺省值。(np.nan和np.NaN一样都是NaN,需导入numpy,import numpy as np)
(3-1)判断缺省值:isna, isnull, notna, notnull
(3-2)填充缺省值:
(3-2-1)指定方式填充:fillna
fillna(self, value: 'object | ArrayLike | None' = None, method: 'FillnaOptions | None' = None, axis: 'Axis | None' = None, inplace: 'bool' = False, limit=None, downcast=None) -> 'DataFrame | None'
注:默认inplace=False 不替换原DataFrame。
- DataFrame.fillna(字典):字典中键为列名,填充值为列名对应的值。即将NaN值按照字典中相同键(列名)对应的值填充。
- DataFrame.fillna(另一个DataFrame):将NaN值按照另一个DataFrame的相同列名相同行索引位置的值填充。
补充:
(3-2-2)插值方式填充:interpolate
插值法:通过已知的离散的数据点,推算一定范围内新数据点的方法,常用于函数拟合。
线性关系:两个变量之间的关系用图形表示是一条直线。
线性插值法:通过连接两个已知点的直线,近似获取其他未知点的方法。
interpolate(self: 'DataFrame', method: 'str' = 'linear', axis: 'Axis' = 0, limit: 'int | None' = None, inplace: 'bool' = False, limit_direction: 'str | None' = None, limit_area: 'str | None' = None, downcast: 'str | None' = None, **kwargs) -> 'DataFrame | None'
注:默认method='linear' 线性,inplace=False 不替换原DataFrame。
(3-3)删除缺省值所在行/列:dropna
dropna(self, axis: 'Axis' = 0, how: 'str' = 'any', thresh=None, subset: 'IndexLabel' = None, inplace: 'bool' = False)
注:默认axis=0 按行查看,how='any' 只要有NaN整行删除(不能和参数thresh一起使用),inplace=False 不替换原DataFrame。
(3-4)替换值:replace
replace(self, to_replace=None, value=<no_default>, inplace: 'bool' = False, limit=None, regex: 'bool' = False, method: 'str | lib.NoDefault' = <no_default>)
(4-1)通过索引,连接另一个DataFrame/Series的列:join
join(self, other: 'DataFrame | Series', on: 'IndexLabel | None' = None, how: 'str' = 'left', lsuffix: 'str' = '', rsuffix: 'str' = '', sort: 'bool' = False) -> 'DataFrame'
注:默认通过索引连接。默认how='left' 左连接。
how='left' | 左连接 | 按左DataFrame的索引, 右DataFrame没有索引对应的数据,则为NaN |
how='right' | 右连接 | 按右DataFrame的索引, 左DataFrame没有索引对应的数据,则为NaN,若对应多个数据则都显示 |
how='inner' | 内连接 | 两个DataFrame共同索引对应的数据 |
how='outer' | 外连接 | 两个DataFrame的所有索引,各索引对应的数据,没有为NaN |
how='cross' | 笛卡尔积 | X*Y,两个DataFrame的所有组合。 |
(4-2)指定连接列,连接另一个DataFrame/Series的列:merge
merge(self, right: 'DataFrame | Series', how: 'str' = 'inner', on: 'IndexLabel | None' = None, left_on: 'IndexLabel | None' = None, right_on: 'IndexLabel | None' = None, left_index: 'bool' = False, right_index: 'bool' = False, sort: 'bool' = False, suffixes: 'Suffixes' = ('_x', '_y'), copy: 'bool' = True, indicator: 'bool' = False, validate: 'str | None' = None) -> 'DataFrame'
注:默认how='inner' 内连接。
(4-3)尾部追加另一个DataFrame的行:append
append(self, other, ignore_index: 'bool' = False, verify_integrity: 'bool' = False, sort: 'bool' = False) -> 'DataFrame'
(4-4)指定轴,连接另一个DataFrame/Series的列/行:concat
concat(objs: 'Iterable[NDFrame] | Mapping[Hashable, NDFrame]', axis: 'Axis' = 0, join: 'str' = 'outer', ignore_index: 'bool' = False, keys=None, levels=None, names=None, verify_integrity: 'bool' = False, sort: 'bool' = False, copy: 'bool' = True) -> 'DataFrame | Series'
注:默认join='outer' 外连接。
groupby(self, by=None, axis: 'Axis' = 0, level: 'Level | None' = None, as_index: 'bool' = True, sort: 'bool' = True, group_keys: 'bool' = True, squeeze: 'bool | lib.NoDefault' = <no_default>, observed: 'bool' = False, dropna: 'bool' = True) -> 'DataFrameGroupBy'
注:默认dropna=True 忽略NaN。
groupby一般和agg配合使用。agg在指定轴上使用多个操作进行聚合。
agg(self, func=None, axis: 'Axis' = 0, *args, **kwargs)
groupby可根据条件分组。
pandas 各函数官方文档:General functions — pandas 2.2.2 documentation (pydata.org)
DataFrame 各方法官方文档:DataFrame — pandas 2.2.2 documentation (pydata.org)
Series 各方法官方文档:Series — pandas 2.2.2 documentation (pydata.org)
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。