当前位置:
首页 > temp > python入门教程 >
-
pandas学习笔记2
1、筛选用法
loc、where
• orgin_excel.loc[(orgin_excel['投资时间'].astype(str) <'2020-10-01')&(orgin_excel['数据状态'].isnull())&(orgin_excel['数据源'].str.contains('调研')),'数据状态']='删除'
• orgin_excel['删除理由']=np.where((orgin_excel['数据状态'] =='重复删除'), '问卷填写重复',orgin_excel['删除理由'])
• diaoyan_money234.loc[:,'New_ID_x']=diaoyan_money234['New_ID_x'].reindex_like(diaoyan_money234['New_ID_y'])
• df.query('column1 > 2 and column 2<1')
• DataFrame.filter(items=None, like=None, regex=None, axis=None)
• df1=df.groupby('district').filter(lambda x: x['age'].mean()>20)
结果会将所有age>20的district的行选掉,返回所有其他值。
2、去重用法
• orgin_excel['数据状态']=np.where(orgin_excel.duplicated(subset=['排名用全称','受资方全称','投资时间','基金全称','投资币种','投资金额(M)','数据源'],keep='first') &(orgin_excel['数据源'].str.contains('调研')), '重复删除',orgin_excel['数据状态'])
用法:DataFrame.duplicated(subset=None, keep='first')
• orgin_res2 = orgin_res1.groupby(['排名用全称','受资方全称','投资时间_x']).filter(lambda x: len(x) > 1)
3、字符转换
整列转字符:
orgin_excel['New_ID']=orgin_excel['New_ID'].map(str)
时间转整型
orgin_res1=orgin_res.loc[(orgin_res['投资时间_x']-orgin_res['投资时间_y']).astype('timedelta64[D]').astype(float).abs()<=90]
4、去重取条数 groupby count
• diaoyan_org_row=orgin_excel.loc[(orgin_excel['数据源'].str.contains('调研'))&(orgin_excel['数据状态'].isna())].groupby(['排名用全称','受资方全称','投资时间']).agg({'New_ID': ','.join,"条数" : "size"})
• diaoyan_org_list=orgin_excel.loc[orgin_excel['数据源'].str.contains('调研') & orgin_excel['数据状态'].isnull()==True].groupby(['排名用全称','受资方全称','投资时间']).size().reset_index(name='counts')
1. count:size
2. Groupby concat :.agg({'New_ID': ','.join}
3. Count 列重命名 .size().reset_index(name='counts')
5、关联
• orgin_rows=pd.merge(diaoyan_row_org1,simutong_row_org1,on=['排名用全称','受资方全称'],how='inner')
用法:pd.merge(DateFrame1,DateFrame2,on = ' ',how = ' ')
关联并取自己想要的字段
• diaoyan_jijin=pd.merge(orgin_excel,diaoyan_org_jijin,on=['New_ID','排名用全称','受资方全称','投资时间'],how='inner')[['排名用全称','受资方全称','投资时间','条数_y','New_ID','基金全称']]
关联并重置索引
• orgin_jijin=pd.merge(diaoyan_jijin,simutong_jijin,on=['排名用全称','受资方全称','条数_y'],how='inner').reset_index()
6、包含
contains
单个字段值包含某个字符串
orgin_money2['来源详情'].str.contains('问卷')
取反
orgin_money2['来源详情'].str.contains('问卷')==False
Isin
• new = data["Gender"].isin(["Male"])
用法:DataFrame.isin(values) (可整列使用)
7、空值处理
• 增加一列空值
orgin_excel['数据状态']=None
• 筛选空值
1. Isna() isnull()
2. notna() notnull()
特别想说 刚学习pandas的时候 什么也不会 连怎么取两列都不知道 在此特将方法贡献给和我一样的小菜鸟们
XX[['me','you']]
出处:https://www.cnblogs.com/mollyliu/p/15357345.html
出处:https://www.cnblogs.com/mollyliu/p/15357345.html
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
关于JS定时器的整理
JS中使用Promise.all控制所有的异步请求都完
js中字符串的方法
import-local执行流程与node模块路径解析流程
检测数据类型的四种方法
js中数组的方法,32种方法
前端操作方法
数据类型
window.localStorage.setItem 和 localStorage.setIte
如何完美解决前端数字计算精度丢失与数