Pandas参考手册、常用函数及方法汇总
一、入门与升级宝典
如果个人时间充裕,可以去官网查看文档信息
官网链接:pandas - Python Data Analysis Library
pandas参考文档:pandas documentation — pandas 1.3.3 documentation
二、常用的函数和方法
创建测试对象:
- pd.DataFrame(np.random.rand(20,5)):创建20行5列的随机数组成的DataFrame对象
- pd.Series(my_list):从可迭代对象my_list创建一个Series对象
- df.index = pd.date_range('1900/1/30', periods=df.shape[0]):增加一个日期索引
df为某个读入进来的数据帧。
需知:
axis的参数:0(index) 逐行
1 (column) 逐列
1.导入数据
pd.read_csv(filename):从CSV文件导入数据
pd.read_table(filename):从限定分隔符的文本文件导入数据
pd.read_excel(filename):从Excel文件导入数据
pd.read_sql(query, connection_object):从SQL表/库导入数据
pd.read_json(json_string):从JSON格式的字符串导入数据
pd.read_html(url):解析URL、字符串或者HTML文件,抽取其中的tables表格
pd.read_clipboard():从你的粘贴板获取内容,并传给read_table()
pd.DataFrame(dict):从字典对象导入数据,Key是列名,Value是数据
pd.ExcelFile(Filename): 从Excel中读取数据,sheet_names查看相应sheet, parse方法解析某个sheet
2.导出数据
- df.to_csv(filename):导出数据到CSV文件
- df.to_excel(filename):导出数据到Excel文件
- df.to_sql(table_name, connection_object):导出数据到SQL表。注意:dtype可以指定输出字段的格式,如df.to_sql('test',con=engine,dtype={'A':Integer(),'B':DateTime()})
- df.to_json(filename):以Json格式导出数据到文本文件
- writer=pd.ExcelWriter('test.xlsx') :然后调用df1.to_excel(writer,sheet_name='单位',index=False) 和 writer.save(),将多个数据帧写入同一个工作簿的多个sheet(工作表)
3.查看、检查数据
- df.head(n):查看DataFrame对象的前n行
- df.tail(n):查看DataFrame对象的最后n行
- df.shape():查看行数和列数
- df.info():查看索引、数据类型和内存信息
- df.columns():查看字段(首行)名称
- df.describe():查看数值型列的汇总统计
- s.value_counts(dropna=False):查看Series对象的唯一值和计数
- df.apply(pd.Series.value_counts):查看DataFrame对象中每一列的唯一值和计数
- df.isnull().any(): 查看是否有缺失值
- df[df[column_name].duplicated()]:查看column_name字段数据重复的数据信息
- df[df[column_name].duplicated()].count():查看column_name字段数据重复的个数
- df[col1].unique() :查看col1字段的唯一值
- df[col1].nunique():查看col1字段唯一值个数
4.数据选取
- df[col]:根据列名,并以Series的形式返回列
- df[[col1, col2]]:以DataFrame形式返回多列
- s.iloc[0]:按位置选取数据
- s.loc['index_one']:按索引选取数据
- df.iloc[0,:]:返回第一行
- df.iloc[0,0]:返回第一列的第一个元素
- df.loc[0,:] : 返回第一行(索引为默认的数字时,用法同df.iloc),但需要注意的是loc是按索引,iloc参数只接受数字参数
- df.ix[[:5],["col1","col2"]] : 返回字段为col1和col2的前5条数据,可以理解为loc和iloc的结合体。
- df.at[5,"col1"] :选择索引名称为5,字段名称为col1的数据
- df.iat[5,0] : 选择索引排序为5,字段排序为0的数据
- data.str.contains("s") : 数据中含有"s"字符串的数据
- data.astype(int).isin(list1) :数据的某条数据的某个字段在列表list1中的数据
- df[-df[column_name].duplicated()] :选取column_name字段不重复的数据,支持df[-df.duplicated()]
- df.loc[df['col_name']==value]:选取col_name字段为value的数据
- df.loc[df['col_name'].isin(value_list)]:选取col_name字段为value_list中的值的数据
- df.loc[~df['col_name'].isin(value_list)]:选取col_name字段不在value_list中的值的数据
- df.loc[(df['col_name1'] == value1) & df['col_name2'].isin(value_list)]:选取col_name1等于value1,并且col_name2在value_list中的数据
- df.loc[df['col_name'] != value2]:选取col_name字段不等于value2的数据
- df[[col_1,col_2]].max(axis=1): 选取col_1和col_2中的最大值
5.数据清理
- df.columns = ['a','b','c']:重命名列名(需要将所有列名列出,否则会报错)
- pd.isnull():检查DataFrame对象中的空值,并返回一个Boolean数组
- pd.notnull():检查DataFrame对象中的非空值,并返回一个Boolean数组
- df.dropna():删除所有包含空值的行
- df.dropna(axis=1):删除所有包含空值的列
- df.dropna(axis=1,thresh=n):删除所有小于n个非空值的行
- df.fillna(x):用x替换DataFrame对象中所有的空值,支持df[column_name].fillna(x)
- s.astype(float):将Series中的数据类型更改为float类型
- s.replace(1,'one'):用‘one’代替所有等于1的值
- s.replace([1,3],['one','three']):用'one'代替1,用'three'代替3
- df.rename(columns=lambda x: x + 1):批量更改列名
- df.rename(columns={'old_name': 'new_ name'}):选择性更改列名
- df.set_index('column_one'):将某个字段设为索引,可接受列表参数,即设置多个索引
- df.reset_index("col1"): 将索引设置为col1字段,并将索引新设置为0,1,2...
- df.rename(index=lambda x: x + 1):批量重命名索引
6.数据处理:Filter、Sort、GroupBy、Map
- df[df[col] > 0.5]:选择col列的值大于0.5的行
- df.sort_index().loc[:5]:对前5条数据进行索引排序
- df.sort_values(col1):按照列col1排序数据,默认升序排列
- df.sort_values(col2, ascending=False):按照列col1降序排列数据
- df.sort_values([col1,col2], ascending=[True,False]):先按列col1升序排列,后按col2降序排列数据
- df.groupby(col):返回一个按列col进行分组的Groupby对象
- df.groupby([col1,col2]):返回一个按多列进行分组的Groupby对象
- df.groupby(col1)[col2].agg(mean):返回按列col1进行分组后,列col2的均值,agg可以接受列表参数,agg([len,np.mean])
- df.pivot_table(index=col1, values=[col2,col3], aggfunc={col2:max,col3:[ma,min]}):创建一个按列col1进行分组,计算col2的最大值和col3的最大值、最小值的数据透视表
- df.groupby(col1).agg(np.mean):返回按列col1分组的所有列的均值,支持df.groupby(col1).col2.agg(['min','max'])
- data.apply(np.mean):对DataFrame中的每一列应用函数np.mean,特别注意:apply时引用的对象是一个series,而不是一个单值。
- data[[col1,col2]].apply(np.max,axis=1):对DataFrame中的col1和col2字段的每一行应用函数np.max,即取两者的最大值
- data[col1].map(lambda x:str(x)): 将col1字段的每一行数据转为字符串,同data[col1].apply(lambda x:str(x))
- data[col1].map(lambda x:float(x[1:-1])) : 改变数据类型为浮点数
- df.groupby(col1).col2.transform("sum"):通常与groupby连用,避免索引更改
- df.set_index("date").groupby([col1,pd.Grouper(freq="M")]).agg(sum): 将某列时间设置为索引,并按照月份求和
- df.groupby(col1,as_index=False).agg(sum).loc[:,[col2,col3]]: 按照col1字段对 col2和col3进行聚合求和,并避免col1被设置为索引
7.数据合并
- df1.append(df2):将df2中的行添加到df1的尾部
- pd.concat([df1, df2],axis=1,join='inner'):将df2中的列添加到df1的尾部,值为空的对应行与对应列都不要。当axis=0时,即按照行进行拼接。
- df1.join(df2.set_index(col1),on=col1,how='inner'):对df1的列和df2的列执行SQL形式的join,默认按照索引来进行合并,如果df1和df2有共同字段时,会报错,可通过设置lsuffix,rsuffix来进行解决,如果需要按照共同列进行合并,就要用到set_index(col1)
- pd.merge(df1,df2,on='col1',how='outer') :对df1和df2合并,按照col1,方式为outer
- pd.merge(df1, df2, left_index=True, right_index=True, how='outer') 与 df1.join(df2, how='outer') 效果相同
8.数据统计
- df.describe():查看数据值列的汇总统计
- df.mean():返回所有列的均值
- df.corr():返回列与列之间的相关系数
- df.count():返回每一列中的非空值的个数
- df.max():返回每一列的最大值
- df.min():返回每一列的最小值
- df.median():返回每一列的中位数
- pd.date_range('1/1/2000', periods=7)
- df.std():返回每一列的标准差
9.时间处理
- pd.date_range('1/1/2018',periods=7) : 指定开始的时间为2018-1-1,周期为7,生成一系列时间(时间格式不固定)
- pd.to_datetime(df['date']) : 将date列的数据类型转为datetime类型
- df.to_period('Q') :季度,按照不同维度划分(w,m,y,Q)
- df[['date','time']] = df['deal_time'].radd(' ').str.rsplit(' ', n=1, expand=True) :拆分日期和时间
10.文本处理
- df['col1'].str.cat([df['col2'],df['col3'],df['col4']],sep=';') : 将df中的col1,col2,col3,col4字段的值拼接起来,并用";"作为分隔符;
- df['col1'].str.split(';'): 将df中的col1字段按照";"进行拆分,结果为列表。df['col1'].str.split(';',expend=True)会将拆分的内容生成一列;
三、其他常用
1.pipe
将 f(g(h(df), arg1=a), arg2=b, arg3=c) 形式化为
(df.pipe(h)
... .pipe(g, arg1=a)
... .pipe((f, 'arg2'), arg1=a, arg3=c)
... )
2.series转为dataframe
s.to_frame() 将格式为series的s转为dataframe,索引不会发生变化;
#该方法索引会发生变化
dict_s = {"col1":s.index,"col2":s.values}
df=pd.DataFrame(dict_s)
3.计算时间差
比如需要计算df中time1和time2的时间差
#方法1(直接进行加减)
df['diff']=(df['time2']-df['time1']).dt.days
#方法2(apply)
def time_diff(data,before,after):dt1=data[before]dt2=data[after]days=(dt2-dt1).daysreturn days
df['diff']=df.apply(time_diff,axis=1,args=("time1","time2")) #调用方式1
#df['diff']=df.apply(time_diff,axis=1,before="time1",after="time2") #调用方式2
#df['diff']=df.apply(time_diff,axis=1,**{before:"time1",after:"time2"}) #调用方式3
Pandas参考手册、常用函数及方法汇总相关推荐
- Python之pandas:pandas中数据处理常用函数(与空值相关/去重和替代)简介、具体案例、使用方法之详细攻略
Python之pandas:pandas中数据处理常用函数(与空值相关/去重和替代)简介.具体案例.使用方法之详细攻略 目录 pandas中数据处理常用函数(isnull/dropna/fillna/ ...
- 【终结版】C#常用函数和方法集汇总
C#里面的常用的函数和方法非常重要,然而做题的时候会经常忘记这些封装好的方法,所以我总结一下 C#常用函数和方法集. [1]C#操作字符串的常用使用方法 在 C# 中,您可以使用字符数组来表示字符串, ...
- 统计计量 | 统计学中常用的数据分析方法汇总
来源:数据Seminar本文约10500字,建议阅读15+分钟 统计学中常用的数据分析方法汇总. Part1描述统计 描述统计是通过图表或数学方法,对数据资料进行整理.分析,并对数据的分布状态.数字特 ...
- Python列表操作常用函数、方法大全
目录 简介 列表基本方法 访问列表元素(即索引) index方法 enumerate()函数 在列表中添加元素 append方法 insert方法 修改列表元素 删除列表元素 del语句 pop()函 ...
- SQLserver 常用函数适用方法(转载)
SQL Server 常用函数使用方法(持续更新) 之前就想要把一些 SQL 的常用函数记录下来,不过一直没有实行...嘿嘿... 直到今天用到substring()这个函数,C# 里面这个方法起始值 ...
- Python 批量创建线程及threading.Thread类的常用函数及方法
在<[Python]线程的创建.执行.互斥.同步.销毁>(点击打开链接)中介绍了Python中线程的使用,但是里面线程的创建,使用了很原始的方式,一行代码创建一条.其实,Python里是可 ...
- Pandas入门之常用函数介绍
一.Pandas简介 pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的. Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具. pan ...
- python常用方法总结-Python3常用函数、方法总结(持续更新…)
最近刷LeetCode,自己自娱自乐完之后去discussion看大佬们的各种巧妙解法,总是止不住的双击666--加上最近Python3用的比较多(虽然Python实在不推荐跑算法题目,一是运行效率太 ...
- php findall,fleaphp常用函数findAll方法的使用和示例
fleaphp中的常用函数findAll,主要用与构造sql语句并查询数据,findAll方法的使用和示例 findAll的函数原型是/** * 查询所有符合条件的记录及相关数据,返回一个包含多行记录 ...
- 常用的数据分析方法汇总
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 一.描述统计 描述统计是通过图表或数学方法,对数据资料进行整理.分 ...
最新文章
- Oracle 触发器调用存储过程|转||待研究|
- python语言程序设计基础网课-Python语言程序设计基础答案
- 【听课笔记】2009 Google OpenSocial-CSDN开放平台交流会笔记
- 【导纳分析】基于FPGA的导纳分析仪的verilog设计
- 内存泄露检测工具之DMalloc
- Flex 3 和PHP连接mysql数据库
- 电子计算机简称什么也称什么,点点点电子美容仪
- python 数学计算库_Python标准库——数学运算
- 如何获得select被选中option的value和text和......
- 万能模拟器eve-ng介绍
- 拓端tecdat|R语言数据可视化分析案例:探索BRFSS数据
- Android源码在线查看工具
- 预实验结果与试剂配比
- 林子雨 慕课答案2021新版
- 计算机桌面文件为何不能剪贴,复制粘贴,详细教您电脑复制粘贴不能用了怎么解决...
- passwd: Have exhausted maximum number of retries for servic、ssh用普通用户登录输入密码正确但是登录却提示被拒绝问题解决,su到root报错
- java queue GATK_GATK 4.0 全外显子call variant
- OD常规使用方法总结
- PHP内置的MySQL函数总结
- CVPR2019 Oral论文《Side Window Filtering》解读及算法 Python 实现