一文总结pandas基础及常用方法、函数

pandas 是基于NumPy 的一种工具,该工具是为解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一。

1、pandas怎样读取数据

数据类型说明读取方法
csv 、tsv、txt用逗号分隔,tab分隔的纯文本文件pd.read_csv
excel微软xls或者xlsx文件pd.read_excel
mysql关系型数据库表pd.read_sql

例:

import pandas as pd
df=pd.read_csv("./DataIncome.csv")
print(df.head())  #head方法是预览数据前五条

在这里插入图片描述

2、pandas数据结构

2.1 DataFrame 二维数据(理解为表)

在这里插入图片描述

2.2 Series(一维数据,理解为python中的列表)

在这里插入图片描述

3、怎样查询数据

3.1、df.loc

根据行、列标签值查询
在这里插入图片描述
例:选择所有行的name列

print(df.loc[:, "name"])

3.2、df.iloc

对数据进行位置索引,从而在数据表中提取出相应的数据。

df.iloc[a,b]

a是行索引,b是列索引
在这里插入图片描述

import pandas
df = pandas.read_csv('a.csv')
print(df.iloc[1,2])

输出:95

4、新增数据列

4.1 直接赋值

import pandas
df = pandas.read_csv('a.csv')
df['test']=0 #新增列名

4.2 insert()函数

insert()函数语法:

df.insert(loc, column, value,allow_duplicates = False)

参数说明:

  • loc 必要字段,int类型数据,表示插入新列的列位置,原来在该位置的列将向右移。
  • column 必要字段,插入新列的列名。
  • value 必要字段,新列插入的值。如果仅提供一个值,将为所有行设置相同的值。可以是int,string,float等,甚至可以是series /值列表。
  • allow_duplicates 布尔值,用于检查是否存在具有相同名称的列。默认为False,不允许与已有的列名重复。

5、统计函数

函数含义
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()运算比率(后一个元素与前一个元素的比率)

6、判断空值(数据清洗)

6.1 判断pandas中单个空值对象的方式:

  • 利用pd.isnull(),pd.isna()
  • 利用np.isnan()
  • 利用is表达式
  • 利用in表达式

6.2 判断pandas中多个空值对象的方式:

  • 可以用Series对象和DataFrame对象的any()或all()方法;
  • 可以用numpy的any()或all()方法;
  • 不可以直接用python的内置函数any()和all()方法;
  • 可以用Series或DataFrame对象的dropna()方法剔除空值;
  • 可以用Series或DataFrame对象的fillna()方法填充空值

6.3数据清洗常用函数

函数含义
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()字符分隔

6.4数据筛选函数

函数含义
isin()成员关系判断
between()区间判断
loc()条件判断(可使用在数据框中)
iloc()索引判断(可使用在数据框中)
compress()条件判断
nlargest()搜寻最大的n个元素
nsmallest()搜寻最小的n个元素
str.findall()子串查询(可使用正则)

7、数据排序

7.1DataFrame排序

函数:DataFrame.sort_values(by, ascending=True, inplace=False)
参数说明:

  • by:字符串或者List<字符串>,单列排序或者多列排序。
  • ascending:bool或者List,默认为True,如果为list,则会对多个列进行排序。
  • inplace:是否修改原始DataFrame。
    例如:df.sort_values(by="name")

7.2Series排序:

函数:Series.sort_values(ascending=True, inplace=False)
参数说明:

  • ascending:默认为True升序排序,为False降序排序。
  • inplace:是否修改原始Series。

例如:df["name"].sort_values(ascending=True)

8、时间序列函数

函数含义
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()判断日期是否为闰年

9、绘图函数

函数含义
hist()绘制直方图
plot()可基于kind参数绘制更多图形(饼图,折线图,箱线图等)
map()元素映射
apply()基于自定义函数的元素级操作

10、其他函数

函数含义
append()序列元素的追加(需指定其他序列)
diff()一阶差分
round()元素的四舍五入
sort_values()按值排序
sort_index()按索引排序
to_dict()转为字典
tolist()转为列表
unique()元素排重
  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

藏蓝色攻城狮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值