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爬取B站千万级数据

    使用python爬取B站千万级数据

    B站我想大家都熟悉吧,其实 B 站的爬虫网上一搜一大堆。不过纸上得来终觉浅,绝知此事要躬行,我码故我在。
    2018-06-06
  • python修改txt文件中的某一项方法

    python修改txt文件中的某一项方法

    今天小编就为大家分享一篇python修改txt文件中的某一项方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • python数组过滤实现方法

    python数组过滤实现方法

    这篇文章主要介绍了python数组过滤实现方法,涉及Python针对数组的相关操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • python 利用已有Ner模型进行数据清洗合并代码

    python 利用已有Ner模型进行数据清洗合并代码

    今天小编就为大家分享一篇python 利用已有Ner模型进行数据清洗合并代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12
  • django-rest-framework 自定义swagger过程详解

    django-rest-framework 自定义swagger过程详解

    这篇文章主要介绍了django-rest-framework 自定义swagger过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • Python操作Excel之xlsx文件

    Python操作Excel之xlsx文件

    前段时间做一个项目,不得不使用Python直接生成Excel文件,后来随着需求的变化,还要对已有的Excel文件进行读取。所以想着记录下来,这篇文章主要给大家介绍了Python操作Excel之xlsx文件的相关资料,需要的朋友可以参考下。
    2017-03-03
  • 基于python list对象中嵌套元组使用sort时的排序方法

    基于python list对象中嵌套元组使用sort时的排序方法

    下面小编就为大家分享一篇基于python list对象中嵌套元组使用sort时的排序方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • Python 实现链表实例代码

    Python 实现链表实例代码

    这篇文章主要介绍了Python 实现链表实例代码的相关资料,需要的朋友可以参考下
    2017-04-04
  • python神经网络TensorFlow简介常用基本操作教程

    python神经网络TensorFlow简介常用基本操作教程

    这篇文章主要介绍了python神经网络入门TensorFlow简介常用基本操作教程,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2021-11-11
  • 详解Python中RegEx在数据处理中的应用

    详解Python中RegEx在数据处理中的应用

    正则表达式(Regular Expressions,简称 RegEx)是一种强大的文本匹配和搜索工具,它在数据处理、文本解析和字符串操作中发挥着关键作用,下面就跟随小编一起来了解一下RegEx的具体使用吧
    2024-01-01

最新评论