pandas快速处理Excel,替换Nan,转字典的操作

 更新时间:2021年03月27日 09:59:25   作者:安心写bug  
这篇文章主要介绍了pandas快速处理Excel,替换Nan,转字典的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

pandas读取Excel

import pandas as pd
# 参数1:文件路径,参数2:sheet名
pf = pd.read_excel(path, sheet_name='sheet1')

删除指定列

# 通过列名删除指定列
pf.drop(['序号', '替代', '签名'], axis=1, inplace=True)

替换列名

# 旧列名 新列名对照
columns_map = {
    '列名1': 'newname_1',
    '列名2': 'newname_2',
    '列名3': 'newname_3',
    '列名4': 'newname_4',
    '列名5': 'newname_5',
    # 没有列名的情况
    'Unnamed: 10': 'newname_6',
}
new_fields = list(columns_map.values())
pf.rename(columns=columns_map, inplace=True)
pf = pf[new_fields]

替换 Nan

通常使用

pf.fillna('新值')

替换表格中的空值,(Nan)。

但是,你可能会发现 fillna() 会有不好使的时候,记得加上 inplace=True

# 加上 inplace=True 表示修改原对象
pf.fillna('新值', inplace=True)

官方对 inplace 的解释

inplace : boolean, default False

If True, fill in place. Note: this will modify any other views on this object, (e.g. a no-copy slice for a column in a DataFrame).

全列输出不隐藏

你可能会发现,输出表格的时候会出现隐藏中间列的情况,只输出首列和尾列,中间用 … 替代。

加上下面的这句话,再打印的话,就会全列打印。

pd.set_option('display.max_columns', None)
print(pf)

将Excel转换为字典

pf_dict = pf.to_dict(orient='records')

全部代码

import pandas as pd
pf = pd.read_excel(path, sheet_name='sheet1')
columns_map = {
    '列名1': 'newname_1',
    '列名2': 'newname_2',
    '列名3': 'newname_3',
    '列名4': 'newname_4',
    '列名5': 'newname_5',
    # 没有列名的情况
    'Unnamed: 10': 'newname_6',
}
new_fields = list(columns_map.values())
pf.drop(['序号', '替代', '签名'], axis=1, inplace=True)
pf.rename(columns=columns_map, inplace=True)
pf = pf[new_fields]
pf.fillna('Unknown', inplace=True)
# pd.set_option('display.max_columns', None)
# print(smt)
pf_dict = pf.to_dict(orient='records')

补充:python pandas replace 0替换成nan,bfill/ffill

0替换成nan

一般情况下,0 替换成nan会写成

df.replace(0, None, inplace=True)

然而替换不了,应该是这样的

df.replace(0, np.nan, inplace=True)

nan替换成前值后值

df.ffill(axis=0) # 用前一个值替换
df.bfill(axis=0) # 用后一个值替换

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

相关文章

  • Python使用configparser读取ini配置文件

    Python使用configparser读取ini配置文件

    这篇文章主要介绍了Python使用configparser读取ini配置文件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • python实现音乐播放器 python实现花框音乐盒子

    python实现音乐播放器 python实现花框音乐盒子

    这篇文章主要为大家详细介绍了python实现音乐播放器,实现花框音乐盒子,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-02-02
  • 详解解Django 多对多表关系的三种创建方式

    详解解Django 多对多表关系的三种创建方式

    本文主要介绍了详解解Django 多对多表关系的三种创建方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-08-08
  • Python实现PDF到Word文档的高效转换

    Python实现PDF到Word文档的高效转换

    这篇文章主要为大家详细介绍了如何使用Python编程语言,结合库和工具,将PDF文件转换为可编辑的Word文档,使文档的编辑变得方便高效,需要的可以参考下
    2024-01-01
  • python版本的仿windows计划任务工具

    python版本的仿windows计划任务工具

    这篇文章主要介绍了python版本的仿windows计划任务工具,计划任务工具根据自己设定的具体时间,频率,命令等属性来规定所要执行的计划,当然功能不是很全大家可以补充
    2018-04-04
  • Python遍历目录中的所有文件的方法

    Python遍历目录中的所有文件的方法

    Pyhton中我们一般使用os.walk生成器来获取文件夹中的所有文件,这里我们就来详细看一下Python遍历目录中的所有文件的方法,包括一个进阶的利用fnmatch模块进行匹配的方法:
    2016-07-07
  • python spyder中读取txt为图片的方法

    python spyder中读取txt为图片的方法

    下面小编就为大家分享一篇python spyder中读取txt为图片的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • Python Pygame实战之超级炸弹人游戏的实现

    Python Pygame实战之超级炸弹人游戏的实现

    如今的玩家们在无聊的时候会玩些什么游戏呢?王者还是吃鸡是最多的选择。但在80、90年代的时候多是一些很简单的游戏:《超级玛丽》、《魂斗罗》等。本文将利用Pygame制作另一个经典游戏—炸弹人,感兴趣的可以了解一下
    2022-03-03
  • 使用Python+Flask开发博客项目并实现内网穿透

    使用Python+Flask开发博客项目并实现内网穿透

    Flask是一个使用python编写的轻量级Web框架,这篇文章我们将使用这个框架编写一个属于自己的博客网站!并教你如何通过使用内网穿透工具处理项目,让本地的项目可以在公网访问,感兴趣的可以了解一下
    2021-11-11
  • 基于pandas中expand的作用详解

    基于pandas中expand的作用详解

    今天小编就为大家分享一篇基于pandas中expand的作用详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12

最新评论