Pandas库函数总结

本文详述了Pandas库的核心操作,包括Series和DataFrame的创建、增删改查,常用函数和统计函数的使用,数据读取与存储的方法,以及JSON与Pandas之间的转化,最后探讨了数据的分组与聚合功能。内容涵盖numpy函数的应用、处理JSON数据、文件读写、分块读取大文件等实用技巧。
摘要由CSDN通过智能技术生成


引入Pandas库:

import Pandas as pd
import json

补充:
(1) Series与DataFrame可以直接使用numpy的函数,例如np.abs(df):对DataFrame的数据取绝对值
(2) 处理JSON数据时需要引入JSON库

1. Series创建及增删改查

方式 示例 备注
通过list创建 pd.Series([1,2,3,4,5])
通过numpy数组创建 pd.Series(np.arange(1,6))
通过字典创建 pd.Series({‘name’:‘李宁’,‘age’:18,‘class’:‘三班’}) name,age,class为索引
重新索引 ps.reindex([‘a’,‘b’,‘c’,‘d’,‘e’,‘f’]) reindex 创建一个符合新索引的新对象,可利用fill_value参数对缺失值进行填充
增-方式1 ps[‘g’] = 9 在原Series对象上增加g索引
增-方式2 ps.append(pd.Series({‘f’:999})) 增加索引并生成新的Series对象
删-方式1 del ps[‘b’] 删除Series中索引b的值(在原有数据结构上删除)
删-方式2 ps.drop(‘g’) 删除索引g 产生新的对象(删除一条)
删-方式3 ps1.drop([‘c’,‘d’]) 删除多条
改-方式1 ps[‘a’]=999 通过标签修改
改-方式2 ps[0] = 888 通过位置索引修改
查-行索引 ps[‘a’] 查看标签索引a对应的值
查-行索引 ps[0] 查看位置索引0对应的值
查-切片索引 ps[1:4] 位置切片索引(取不到末位)
查-切片索引 ps[‘b’:‘d’] 标签切片索引(可以取到末位)
查-不连续索引 ps[[‘b’,‘e’]] 标签索引
查-不连续索引 ps[[0,2]] 位置索引
查-布尔索引 ps[ps>2] 查询出值大于2的数据
高级索引-loc标签索引 ps.loc[‘a’:‘c’] 截取索引a-c之间的行
高级索引-iloc位置索引 ps.iloc[1:3] 不包含末位数据

补充:创建Series对象时可通过index参数指定索引

2. DataFrame创建及增删改查

方式 示例 备注
字典类 data = {‘a’:[1,2,3,4],‘b’:[5,6,7,8],‘c’:np.arange(9,13)} frame = pd.DataFrame(data) 数组、列表或元祖构成的字典构造dataframe
字典类 pd.DataFrame({‘a’:pd.Series(np.arange(3)),‘b’:pd.Series(np.arange(3,5))}) Series构成的字典构造dataframe
字典类 data1 = {‘a’:{‘apple’:3.6,‘banana’:5.6},‘b’:{‘apple’:3,‘banana’:5},‘c’:{‘apple’:3.2}} pd2 = pd.DataFrame(data1) 字典构成的字典构造dataframe
列表类 pd.DataFrame(np.arange(12).reshape(4,3)) 2D ndarray 构造dataframe
列表类 l1 = [{‘apple’:3.6,‘banana’:5.6},{‘apple’:3,‘banana’:5},{‘apple’:3.2}] pd.DataFrame(l1) 字典构成的列表构造dataframe
列表类 l2 = [pd.Series(np.random.rand(3)),pd.Series(np.random.rand(2))] pd.DataFrame(l2) Series构成的列表构造dataframe
重新行索引 pd1.reindex([‘a’,‘b’,‘c’,‘d’]) DataFrame行索引重建,可利用fill_value参数对缺失值进行填充
重新列索引 pd1.reindex(columns=[‘C’,‘B’,‘A’]) DataFrame列索引重建,可利用fill_value参数对缺失值进行填充
增(列)-方式1 pd1[4] = 9 增加列(在原DataFrame上操作),新增列的值全为9
增(列)-方式2 pd1.insert(0,‘E’,[9,99,999]) 插入列(在原DataFrame上操作),第0个位置插入索引为E的列值为[9,99,999]
增(行)-方式1 pd1.loc[‘d’] = [1,1,1,1,1] 标签索引loc,该方式在原DataFrame操作
增(行)-方式2 pd1.append(row,ignore_index=True) 追加新的行 生成新的dataframe (ignore_index忽略原来的索引)
删(列)-方式1 del pd1[‘E’] 删除DataFrame中索引为E的列(在原有数据结构上删除)
删(列)-方式2 pd1.drop(‘A’,axis=1) axis=1为删除列
删(列)-方式3 pd1.drop(‘A’,axis=‘columns’) 与axis=1等价
删(行)-方式1 pd1.drop(‘a’) drop默认删除行索引,删除索引为a的一行数据(删除一条)
删(行)-方式2 pd1.drop([‘a’,‘d’]) 删除多条,drop可加参数inplace:True表示在原对象上删除,并不会返回新的对象
改(列)-方式1 pd1[‘A’] = 9或pd1[‘A’] = [9,10,11] 索引A列的数据全部更改为9或改为数组中的对应值
改(列)-方式2 pd1.A = 6 对象.列的形式修改数据值
改(行) pd1.loc[‘a’] = 777 loc标签索引
改(某行某列) pd1.loc[‘a’,‘A’] = 1000 修改a行A列的数值
查-列索引 pd1[‘A’]
查-列索引 pd1[[‘A’,‘C’]] 取多列
查-选取一个值 pd1[‘A’][‘a’] 选取A列a行的数据值
查-切片 pd1[:2] 获取前两行
高级索引-loc标签索引 pd1.loc[‘a’:‘b’,‘A’] 取到a-b之间行的A列
高级索引-iloc位置索引 pd1.iloc[0:2,0:3] 取到0-1行的0-2列
  • 9
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值