我整理了100个Pandas常用的函数,分别分为6类:统计汇总函数、数据清洗函数、数据筛选、绘图与元素级运算函数、时间序列函数和其他函数。赶紧收藏起来吧! 统计汇总函数函数 | 含义 | min() | 计算最小值 | max() | 计算最大值 | sum() | 求和 | mean() | 计算平均值 | count() | 计数(统计非缺失元素的个数) | size() | 计数(统计所有元素的个数) | median() | 计算中位数 | var() | 计算方差 | std() | 计算标准差 | quantile() | 计算任意分位数 | cov() | 计算协方差 | corr() | 计算相关系数 | skew() | 计算偏度 | kurt() | 计算峰度 | mode() | 计算众数 | describe() | 描述性统计(一次性返回多个统计结果) | groupby() | 分组 | aggregate() | 聚合运算(可以自定义统计函数) | argmin() | 寻找最小值所在位置 | argmax() | 寻找最大值所在位置 | any() | 等价于逻辑“或” | all() | 等价于逻辑“与” | value_counts() | 频次统计 | cumsum() | 运算累计和 | cumprod() | 运算累计积 | pct_change() | 运算比率(后一个元素与前一个元素的比率) |
# describe函数总结数据集分布的集中趋势,分散和形状import numpy as npimport pandas as pddata = {'a':[12,13,14,15,11],'b':['a','b','c','d','c']}df = pd.DataFrame(data)df.describe() #默认返回数字字段df.describe(include='all')
数据清洗函数函数 | 含义 | duplicated() | 判断序列元素是否重复。 | drop_duplicates() | 删除重复值 | hasnans() | 判断序列是否存在缺失(返回TRUE或FALSE) | isnull() | 判断序列元素是否为缺失(返回与序列长度一样的bool值) | notnull() | 判断序列元素是否不为缺失(返回与序列长度一样的bool值) | dropna() | 删除缺失值 | fillna() | 缺失值填充 | ffill() | 前向后填充缺失值(使用缺失值的前一个元素填充) | bfill() | 后向填充缺失值(使用缺失值的后一个元素填充) | dtypes() | 检查数据类型 | astype() | 类型强制转换 | pd.to_datetime | 转日期时间型 | factorize() | 因子化转换 | sample() | 抽样 | where() | 基于条件判断的值替换 | replace() | 按值替换(不可使用正则) | str.replace() | 按值替换(可使用正则) | str.split.str() | 字符分隔 |
import numpy as npimport pandas as pddata = {'a':[12,13,14,15,12],'b':['a','b','c','d','c']}df = pd.DataFrame(data)df.duplicated('a')df.drop_duplicates('a','first',inplace = True) #删除重复项并保留第一次出现的项df
数据筛选函数函数 | 含义 | isin() | 成员关系判断 | between() | 区间判断 | loc() | 条件判断(可使用在数据框中) | iloc() | 索引判断(可使用在数据框中) | compress() | 条件判断 | nlargest() | 搜寻最大的n个元素 | nsmallest() | 搜寻最小的n个元素 | str.findall() | 子串查询(可使用正则) |
df = pd.DataFrame({'population': [59000000,65000000,434000,434000,434000,337000,11300,11300,11300],'GDP': [1937894,2583560,12011,4520,12128,17036,182,38,311],'alpha-2': ['IT','FR','MT','MV','BN','IS','NR','TV','AI']},index=['Italy', 'France','Malta','Maldives','Brunei','Iceland','Nauru','Tuvalu','Anguilla'])dfdf.nlargest(3, 'population') #搜寻“population”列中具有最大值的三行
绘图与元素级运算函数函数 | 含义 | hist() | 绘制直方图 | plot() | 可基于kind参数绘制更多图形(饼图,折线图,箱线图等) | map() | 元素映射 | apply() | 基于自定义函数的元素级操作 |
import pandas as pdimport numpy as npimport matplotlib.pyplot as plt #使用 matplotlib 仅仅是用来 show 图片df = pd.read_csv('forestfires.csv')df.plot('temp','FFMC',kind = 'scatter',color='LightGreen') # scatter散点图plt.show()
时间序列函数函数 | 含义 | dt.date() | 抽取出日期值 | dt.time() | 抽取出时间(时分秒) | dt.year() | 抽取出年 | dt.mouth() | 抽取出月 | dt.day() | 抽取出日 | dt.hour() | 抽取出时 | dt.minute() | 抽取出分钟 | dt.second() | 抽取出秒 | dt.quarter() | 抽取出季度 | dt.weekday() | 抽取出星期几(返回数值型) | dt.weekday_name() | 抽取出星期几(返回字符型) | dt.week() | 抽取出年中的第几周 | dt.dayofyear() | 抽取出年中的第几天 | dt.daysinmonth() | 抽取出月对应的最大天数 | dt.is_month_start() | 判断日期是否为当月的第一天 | dt.is_month_end() | 判断日期是否为当月的最后一天 | dt.is_quarter_start() | 判断日期是否为当季度的第一天 | dt.is_quarter_end() | 判断日期是否为当季度的最后一天 | dt.is_year_start() | 判断日期是否为当年的第一天 | dt.is_year_end() | 判断日期是否为当年的最后一天 | dt.is_leap_year() | 判断日期是否为闰年 |
其他函数函数 | 含义 | append() | 序列元素的追加(需指定其他序列) | diff() | 一阶差分 | round() | 元素的四舍五入 | sort_values() | 按值排序 | sort_index() | 按索引排序 | to_dict() | 转为字典 | tolist() | 转为列表 | unique() | 元素排重 |
|