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) # 用后一个值替换

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

(0)

相关推荐

  • 在Pandas中处理NaN值的方法

    关于NaN值 -在能够使用大型数据集训练学习算法之前,我们通常需要先清理数据, 也就是说,我们需要通过某个方法检测并更正数据中的错误. - 任何给定数据集可能会出现各种糟糕的数据,例如离群值或不正确的值,但是我们几乎始终会遇到的糟糕数据类型是缺少值. - Pandas 会为缺少的值分配 NaN 值. 创建一个具有NaN值得 Data Frame import pandas as pd # We create a list of Python dictionaries # 创建一个字典列表 ite

  • Python利用pandas处理Excel数据的应用详解

    最近迷上了高效处理数据的pandas,其实这个是用来做数据分析的,如果你是做大数据分析和测试的,那么这个是非常的有用的!!但是其实我们平时在做自动化测试的时候,如果涉及到数据的读取和存储,那么而利用pandas就会非常高效,基本上3行代码可以搞定你20行代码的操作!该教程仅仅限于结合柠檬班的全栈自动化测试课程来讲解下pandas在项目中的应用,这仅仅只是冰山一角,希望大家可以踊跃的去尝试和探索! 一.安装环境: 1:pandas依赖处理Excel的xlrd模块,所以我们需要提前安装这个,安装命令

  • python pandas消除空值和空格以及 Nan数据替换方法

    在人工采集数据时,经常有可能把空值和空格混在一起,一般也注意不到在本来为空的单元格里加入了空格.这就给做数据处理的人带来了麻烦,因为空值和空格都是代表的无数据,而pandas中Series的方法notnull()会把有空格的数据也纳入进来,这样就不能完整地得到我们想要的数据了,这里给出一个简单的方法处理该问题. 方法1: 既然我们认为空值和空格都代表无数据,那么可以先得到这两种情况下的布尔数组. 这里,我们的DataFrame类型的数据集为df,其中有一个变量VIN,那么取得空值和空格的布尔数组

  • 用Python的pandas框架操作Excel文件中的数据教程

    引言 本文的目的,是向您展示如何使用pandas来执行一些常见的Excel任务.有些例子比较琐碎,但我觉得展示这些简单的东西与那些你可以在其他地方找到的复杂功能同等重要.作为额外的福利,我将会进行一些模糊字符串匹配,以此来展示一些小花样,以及展示pandas是如何利用完整的Python模块系统去做一些在Python中是简单,但在Excel中却很复杂的事情的. 有道理吧?让我们开始吧. 为某行添加求和项 我要介绍的第一项任务是把某几列相加然后添加一个总和栏. 首先我们将excel 数据 导入到pa

  • 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':

  • Pandas替换NaN值的方法实现

    目录 问题 方法 替换 NaN 值的步骤 参考 替换Pandas DataFram中的 NaN 值 问题 NaN 代表 Not A Number,是表示数据中缺失值的常用方法之一.它是一个特殊的浮点值,不能转换为 float 以外的任何其他类型.NaN 值是数据分析中的主要问题之一.为了得到理想的结果,对 NaN 进行处理是非常必要的. 方法 用零替换Pandas DataFram中的 NaN 值的方法: fillna(): 用于使用指定的方法填充 NA/NaN 值. replace(): da

  • Python3使用pandas模块读写excel操作示例

    本文实例讲述了Python3使用pandas模块读写excel操作.分享给大家供大家参考,具体如下: 前言 Python Data Analysis Library 或 pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的.Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具,能使我们快速便捷地处理数据.本文介绍如何用pandas读写excel. 1. 读取excel 读取excel主要通过read_excel函数实现,除了pandas

  • Pandas中inf值替换的方法

    目录 出现inf的原因 解决办法 PS:为了方便后续处理,可以利用numpy,将这些inf值进行替换. 使用Pandas从MySQL读取数据,在处理之后再写回到数据库时报了一个错误: sqlalchemy.exc.ProgrammingError: (MySQLdb._exceptions.ProgrammingError) inf can not be used with MySQL 很明确报错说明,是因为DataFrame中存在inf数据 出现inf的原因 在数据处理过程中用到了除法,并且出

  • Pandas实现Excel文件读取,增删,打开,保存操作

    目录 前言 一.Pandas 的主要函数包括 二.使用步骤 1.简单示例 2.保存Excel操作 3.删除和添加数据 4.添加新的表单 前言 Pandas 是一种基于 NumPy 的开源数据分析工具,用于处理和分析大量数据.Pandas 模块提供了一组高效的工具,可以轻松地读取.处理和分析各种类型的数据,包括 CSV.Excel.SQL 数据库.JSON 等格式的数据. 一.Pandas 的主要函数包括 pd.read_csv() / pd.read_excel() / pd.read_sql(

  • pandas分别写入excel的不同sheet方法

    pandas可以非常方便的写数据到excel,那么如何写多个dataframe到不同的sheet呢? 使用pandas.ExcelWriter import pandas as pd writer = pd.ExcelFile('your_path.xlsx') df1 = pd.DataFrame() df2 = pd.DataFrame() df1.to_excel(writer, sheet_name='df_1') df2.to_excel(writer, sheet_name='df_

  • pandas 快速处理 date_time 日期格式方法

    当数据很多,且日期格式不标准时的时候,如果pandas.to_datetime 函数使用不当,会使得处理时间变得很长,提升速度的关键在于format的使用.下面举例进行说明: 示例数据: date 格式:02.01.2013 即 日.月.年 数据量:3000000 transcation.head() --------------------------------------------- date date_block_num shop_id item_id item_price item_

  • 解决Python pandas df 写入excel 出现的问题

    学习Python数据分析挖掘实战一书时,在数据预处理阶段,有一节要使用拉格朗日插值法对缺失值补充,代码如下: #-*- coding:utf-8 -*- import pandas as pd import matplotlib.pyplot as plt from scipy.interpolate import lagrange#导入拉格朗日插值函数 inputfile="catering_sale.xls" outputfile="H:\python\file\pyth

  • 使用pandas实现csv/excel sheet互相转换的方法

    1. xlsx to csv: import pandas as pd def xlsx_to_csv_pd(): data_xls = pd.read_excel('1.xlsx', index_col=0) data_xls.to_csv('1.csv', encoding='utf-8') if __name__ == '__main__': xlsx_to_csv_pd() 2. csv to xlsx: import pandas as pd def csv_to_xlsx_pd():

  • 对pandas数据判断是否为NaN值的方法详解

    实际项目中有这样的需求,将某一列的值,映射成类别型的数据,这个时候,需要我们将范围等频切分,或者等距切分. 具体的做法可以先看某一些特征的具体分布情况,然后我们选择合适的阈值进行分割. def age_map(x): if x < 26: return 0 elif x >=26 and x <= 35: return 1 elif x > 35 and x <= 45: return 2 elif pd.isnull(x): #判断是否为NaN值,== 和in 都无法判断

随机推荐