当前位置: 首页 > news >正文

Python与数据分析--Pandas操作进阶

目录

1.文件读取方式

1.1.绝对路径读取文件

1.2.相对路径读取文件

2.列表数据操作

2.1.列索引指定

2.2.代码数据对齐

3.创建新CSV文件

4.缺失值处理

4.1.缺失值创建

4.2.缺失值检索

4.3.缺失值查询

 4.3.1.isnull()函数判断

 4.3.2.notnull()函数判断

4.3.3.any()函数搭配寻找

4.3.4. 具体寻找缺失索引

4.4.缺失值处理

4.4.1.缺失值剔除

4.4.2.缺失值填充

4.4.2.1.按常数填充

4.4.2.2.按指定填充

4.4.2.3.按前数填充

4.4.2.4.按后数填充

4.4.2.5.按统计数据填充


1.文件读取方式

绝对路径:绝对路径是指文件在硬盘上真正存在的路径,就是相当于从计算机根目录开始出发一直搜索到文档为止的目录信息.
相对路径:相对路径非常简单,就是需要提取的文件就是相对于当前目标文件位置。
EXAMPLE:
1.pop_path = r"C:\Users\Zeng Zhong Yan\Desktop\py.vs\python学习\population.csv"这个就是绝对路径,从根目录开始.2.pop_path = r'population.csv'这个就是相对路径,这个文件在文件夹里面,只需要直接提取出来即可。

1.1.绝对路径读取文件

#以具体路径的形式读取文件
pop_path = r"C:\Users\Zeng Zhong Yan\Desktop\py.vs\python学习\population.csv"#前面一定要加个r
population = pd.read_csv(pop_path, encoding='gbk',skiprows=[0, 1, 8, 9])
population

1.2.相对路径读取文件

#将文件放入同文件夹中,直接读取
pop_path = r'population.csv'
pop = pd.read_csv(pop_path, encoding='gbk',skiprows=[0, 1, 8, 9])
pop

2.列表数据操作

2.1.列索引指定

#将某一列当作行索引
pop = pd.read_csv(pop_path, encoding='gbk',skiprows=[0, 1, 8, 9], index_col='指标')
pop.index.name = None
pop

2.2.代码数据对齐

#代码对齐
pop = pd.read_csv(pop_path, encoding='gbk',skiprows=[0, 1, 8, 9], index_col='指标')
pop.index.name = None
pd.set_option('display.unicode.ambiguous_as_wide', True)
pd.set_option('display.unicode.east_asian_width', True)
pd.set_option('display.max_columns', None) 
pop

3.创建新CSV文件

#读取数据
#读取2019-2014年的人口并且创建一个对应的csv文件.
pop2 = pop.iloc[:, 0:6]
pop2.to_csv('pop2.csv', encoding='gbk')

4.缺失值处理

4.1.缺失值创建

#缺失值处理
np.random.seed(3)
grades = pd.DataFrame(np.random.randint(60, 100, size=(4, 3)), index=['Ann', 'Bob', 'Cindy', 'Lee'], columns=['Python', 'C', 'Java'])
#np.nan/None创建确实值
grades.loc['Ann', 'C'] = np.nan
grades.loc['Cindy', 'Python'] = None
grades

4.2.缺失值检索

#发现检索缺失值
grades.info()
#查看对应的缺失值 3 non-null表示 
#Python/C各有一个缺失值

4.3.缺失值查询

Pandas有两种发现缺失值的方法:isnull和notnull
isnull(): Series.isnull()、DataFrame.isnull()
 4.3.1.isnull()函数判断
"""
元素级别的判断---把DataFrame或Series所有元素的位置都列
出来,元素为空或者NA返回True,否则返回False
"""
grades.isnull()
 4.3.2.notnull()函数判断
"""
和isnull类似,区别是notnull的判断依据相反,即缺失值返回
False,非缺失值返回True
"""
grades.notnull()
4.3.3.any()函数搭配寻找
#any()函数
"""
1.isnull()和any函数搭配:Series.any()、DataFrame.any()
2.和Numpy的any函数类似,统计Series或DataFrame中是否存在True,若存在,返回True,否则返回False
 2.1.默认参数axis=0,即按列统计
 2.2.调用DF.isull( ).any( ),如果某一列中有缺失值,则返回值中该列对应值为True
"""
grades.isnull().any()
#如结果所示,Java没有缺失值,显示为True C和Python都有缺失值,显示为False
4.3.4. 具体寻找缺失索引
#搜寻nan的信息
grades.index[grades.isnull().any(axis=1)]#按行搜索,index[]花式搜索

4.4.缺失值处理

4.4.1.缺失值剔除
#处理缺失值:
"""
Pandas剔除缺失值的方法-DataFrame.dropna()默认axis=0,剔除包含缺失值的整行数据
"""
grades.dropna()
4.4.2.缺失值填充
#填充缺失值
#数据是宝贵的,一般情况只要数据缺失比例不高,尽量不要剔除缺失值,而是填充缺失值
"""
1.填充缺失值的方法:Series.fillna(),DataFrame.fillna()
2.DataFrame.fillna(value=None, method=None,axis=None, inplace=False)
 2.1.value: 填充的值---用常数替代缺失值
 2.2.method:填充方式---{ ‘bfill’, 'ffill', None}
 2.3.ffill : 使用前一个值来填充缺失值
 2.4.bfill : 使用后一个值来填充缺失值
"""
4.4.2.1.按常数填充
#全部填充0
grades.fillna(0)
4.4.2.2.按指定填充
#按照自己的意愿填充
grades.fillna({'Python':80,'C':60})
4.4.2.3.按前数填充
#分别采用ffill和bfill方式对dataFrame缺失值填充
#ffill参考前一个
grades.fillna(method='ffill')#默认axis=0 按列来
grades.fillna(method='ffill',axis=1)#也可以指定
4.4.2.4.按后数填充
#bfill参考后一个
grades.fillna(method='bfill')#默认axis=0 按列来
grades.fillna(method='bfill',axis=1)#也可以指
4.4.2.5.按统计数据填充
#利用某些统计数据进行填充
grades['C'].fillna(grades['C'].mean())

http://www.lryc.cn/news/180948.html

相关文章:

  • 国庆小练习
  • springboot单体项目如何拆分成微服务
  • 解决recovery页面反转的问题
  • 如何使用nuScenes数据集格式的单帧数据推理(以DETR3D为例)
  • 大语言模型之十三 LLama2中文推理
  • iOS AVAudioSession 详解
  • 26-网络通信
  • 嵌入式Linux应用开发-基础知识-第十九章驱动程序基石③
  • 一文拿捏SpringMVC的调用流程
  • 一文详解 JDK1.8 的 Lambda、Stream、LocalDateTime
  • WebSocket实战之二协议分析
  • LeetCode //C - 208. Implement Trie (Prefix Tree)
  • 【Python】time模块和datetime模块的部分函数说明
  • Python 无废话-基础知识元组Tuple详讲
  • 【Win】Microsoft Spy++学习笔记
  • 如何解决版本不兼容Jar包冲突问题
  • 数据结构—归并排序-C语言实现
  • Multiple CORS header ‘Access-Control-Allow-Origin‘ not allowed
  • msvcp100.dll丢失怎样修复,msvcp100.dll丢失问题全面解析
  • 最新AI智能问答系统源码/AI绘画系统源码/支持GPT联网提问/Prompt应用+支持国内AI提问模型
  • 全连接网络实现回归【房价预测的数据】
  • mysql八股
  • MATLAB算法实战应用案例精讲-【优化算法】狐猴优化器(LO)(附MATLAB代码实现)
  • C#WPF动态资源和静态资源应用实例
  • 游戏逆向中的 NoClip 手段和安全应对方式
  • nodejs+vue流浪猫狗救助领养elementui
  • Css Flex 弹性布局中的换行与溢出处理方法
  • linux系统与应用
  • MySQL的结构化语言 DDL DML DQL DCL
  • P5488 差分与前缀和