一、入门与升级宝典

如果个人时间充裕,可以去官网查看文档信息

官网链接: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参考手册、常用函数及方法汇总相关推荐

  1. Python之pandas:pandas中数据处理常用函数(与空值相关/去重和替代)简介、具体案例、使用方法之详细攻略

    Python之pandas:pandas中数据处理常用函数(与空值相关/去重和替代)简介.具体案例.使用方法之详细攻略 目录 pandas中数据处理常用函数(isnull/dropna/fillna/ ...

  2. 【终结版】C#常用函数和方法集汇总

    C#里面的常用的函数和方法非常重要,然而做题的时候会经常忘记这些封装好的方法,所以我总结一下 C#常用函数和方法集. [1]C#操作字符串的常用使用方法 在 C# 中,您可以使用字符数组来表示字符串, ...

  3. 统计计量 | 统计学中常用的数据分析方法汇总

    来源:数据Seminar本文约10500字,建议阅读15+分钟 统计学中常用的数据分析方法汇总. Part1描述统计 描述统计是通过图表或数学方法,对数据资料进行整理.分析,并对数据的分布状态.数字特 ...

  4. Python列表操作常用函数、方法大全

    目录 简介 列表基本方法 访问列表元素(即索引) index方法 enumerate()函数 在列表中添加元素 append方法 insert方法 修改列表元素 删除列表元素 del语句 pop()函 ...

  5. SQLserver 常用函数适用方法(转载)

    SQL Server 常用函数使用方法(持续更新) 之前就想要把一些 SQL 的常用函数记录下来,不过一直没有实行...嘿嘿... 直到今天用到substring()这个函数,C# 里面这个方法起始值 ...

  6. Python 批量创建线程及threading.Thread类的常用函数及方法

    在<[Python]线程的创建.执行.互斥.同步.销毁>(点击打开链接)中介绍了Python中线程的使用,但是里面线程的创建,使用了很原始的方式,一行代码创建一条.其实,Python里是可 ...

  7. Pandas入门之常用函数介绍

    一.Pandas简介 pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的. Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具. pan ...

  8. python常用方法总结-Python3常用函数、方法总结(持续更新…)

    最近刷LeetCode,自己自娱自乐完之后去discussion看大佬们的各种巧妙解法,总是止不住的双击666--加上最近Python3用的比较多(虽然Python实在不推荐跑算法题目,一是运行效率太 ...

  9. php findall,fleaphp常用函数findAll方法的使用和示例

    fleaphp中的常用函数findAll,主要用与构造sql语句并查询数据,findAll方法的使用和示例 findAll的函数原型是/** * 查询所有符合条件的记录及相关数据,返回一个包含多行记录 ...

  10. 常用的数据分析方法汇总

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 一.描述统计 描述统计是通过图表或数学方法,对数据资料进行整理.分 ...

最新文章

  1. Oracle 触发器调用存储过程|转||待研究|
  2. python语言程序设计基础网课-Python语言程序设计基础答案
  3. 【听课笔记】2009 Google OpenSocial-CSDN开放平台交流会笔记
  4. 【导纳分析】基于FPGA的导纳分析仪的verilog设计
  5. 内存泄露检测工具之DMalloc
  6. Flex 3 和PHP连接mysql数据库
  7. 电子计算机简称什么也称什么,点点点电子美容仪
  8. python 数学计算库_Python标准库——数学运算
  9. 如何获得select被选中option的value和text和......
  10. 万能模拟器eve-ng介绍
  11. 拓端tecdat|R语言数据可视化分析案例:探索BRFSS数据
  12. Android源码在线查看工具
  13. 预实验结果与试剂配比
  14. 林子雨 慕课答案2021新版
  15. 计算机桌面文件为何不能剪贴,复制粘贴,详细教您电脑复制粘贴不能用了怎么解决...
  16. passwd: Have exhausted maximum number of retries for servic、ssh用普通用户登录输入密码正确但是登录却提示被拒绝问题解决,su到root报错
  17. java queue GATK_GATK 4.0 全外显子call variant
  18. OD常规使用方法总结
  19. PHP内置的MySQL函数总结
  20. CVPR2019 Oral论文《Side Window Filtering》解读及算法 Python 实现

热门文章

  1. 联想电脑Fn热键驱动
  2. Linux操作系统分区格式Ext2,Ext3,Ext4的区别
  3. 金庸群侠传 3小时爆机
  4. 表t_od_use_cnt中没有hour字段,所以hour我们直接
  5. LoadRunner11的安装与破解
  6. 处理 TXT 文本技巧
  7. 软件项目建议书模板(免费)
  8. Windows装机必备软件列表
  9. 二叉树遍历算法C++实现
  10. 常用的几款抓包工具_ 常见的4种抓包工具比较