精华内容
下载资源
问答
  • pandas读取Excel判断指定列是否有空值

    千次阅读 2020-06-16 22:08:36
    有时我们用pandas读取Excel去获取某或者某几列的值,并需要对该的值进行处理,首先要判断该是否有空值,若有空值不做判断可能程序会报错,比如用正则表达式去匹配该的所有单元格的值,这时若某个单元格为...

    一、简介

    有时我们用pandas读取Excel去获取某列或者某几列的值,并对该列的值进行处理时,一般都会先判断该列是否有空值,若有空值对其进行处理后再让程序往下走,否则不做判断可能程序会报错,比如用正则表达式去匹配该列的所有单元格的值,这时若某个单元格为空值则会报错。

    二、思路

    我们可以将空值找出,并做判断,若不为空再进行匹配;
    正常情况pandas读取的空值都会显示NaN,若我们用df[i] == np.nan 去判断则显示为False,i这里代表索引。达不到我们想要的目的,建议用df.isnull()进行判断。

    三、方法

    例如:
    在这里插入图片描述

    这里我们知道第二行为空值,于是

    import pandas as pd
    import numpy as np
    
    
    df = pd.read_excel('demo001.xlsx')['信息内容']
    print(df)
    print('*'*50)
    if df[1] == np.nan:
        print(df[1])
    else:
        print('不能用np.nan直接判断')
    
    #返回结果
    0     你好,csdn博客
    1           NaN
    2      123456我们
    3    helloworld
    4    python读取数据
    Name: 信息内容, dtype: object
    *****************************************************
    不能用np.nan直接判断
    

    修改后的代码

    import pandas as pd
    import numpy as np
    
    
    df = pd.read_excel('demo001.xlsx')['信息内容']
    print(df)
    print('*'*50)
    
    if df.isnull().any():            #判断该列是否有空值,若有这返回True
        print(df[pd.isnull(df)])     #若该列某个单元格为空值,则打印该单元格的信息
    
    #返回结果
    0     你好,csdn博客
    1           NaN
    2      123456我们
    3    helloworld
    4    python读取数据
    Name: 信息内容, dtype: object
    *******************************************************
    1    NaN
    Name: 信息内容, dtype: object
    

    注意: df.isnull.any() 判断dataframe中所有的列是否有空值,若有则该列返回True,没有则该列返回False。

    展开全文
  • pandas 读取excel指定列

    千次阅读 2018-03-07 17:44:00
    不管对于read_csv还是read_excel,现在都有: usecols : int or list, default None If None then parse all columns, If int then indicates last column to be parsed If list of ints then indicates ...

    不管对于read_csv还是read_excel,现在都有:

    usecols : int or list, default None

    • If None then parse all columns,
    • If int then indicates last column to be parsed
    • If list of ints then indicates list of column numbers to be parsed
    • If string then indicates comma separated list of Excel column letters and column ranges (e.g. “A:E” or “A,C,E:F”). Ranges are inclusive of both sides.

    而之前版本的:

    parse_cols : int or list, default None

    Deprecated since version 0.21.0: Pass in usecols instead.

    可以看到在0.21.0版本后就已经完全被上面的那个给替代了。

    这也算解决了我一个头疼的问题,总是把两个read的内容记混了。

    所以对于最新版的pandas,只需要:

    df = pd.read_excel("data.xlsx", usecols=[0, 5]) # 指定读取第1列和第6列
    # 当然也可以用"A,F"代替[0,5]

     

    转载于:https://www.cnblogs.com/cymwill/p/8523877.html

    展开全文
  • pandas 读取excel文件

    千次阅读 多人点赞 2021-02-23 17:12:40
    pandas 读取excel文件一 read_excel() 的基本用法二 read_excel() 的常用的参数:三 示例1. IO:路径2. sheet_name:指定工作表名3. header :指定标题行4. names: 指定列名5. index_col: 指定列索引6. skiprows:跳...

    pandas 读取excel文件使用的是 read_excel方法。本文将详细解析read_excel方法的常用参数,以及实际的使用示例

    一 read_excel() 的基本用法

    import pandas as pd
    
    file_name = 'xxx.xlsx'
    pd.read_excel(file_name)
    

    二 read_excel() 的常用的参数:

    1. io: excel路径 可以是文件路径, 类文件对象, 文件路径对象等。

    2. sheet_name=0: 访问指定excel某张工作表。sheet_name可以是str, int, list 或 None类型, 默认值是0。

      • str类型 是直接指定工作表的名称

      • int类型 是指定从0开始的工作表的索引, 所以sheelt_name默认值是0,即第一个工作表。

      • list类型 是多个索引或工作表名构成的list,指定多个工作表。

      • None类型, 访问所有的工作表

      • sheet_name=0: 得到的是第1个sheet的DataFrame类型的数据

      • sheet_name=2: 得到的是第3个sheet的DataFrame类型的数据

      • sheet_name=‘Test1’: 得到的是名为’Test1’的sheet的DataFrame类型的数据

      • sheet_name=[0, 3, ‘Test5’]: 得到的是第1个,第4个和名为Test5 的工作表作为DataFrame类型的数据的字典。

    3. header=0:header是标题行,通过指定具体的行索引,将该行作为数据的标题行,也就是整个数据的列名。默认首行数据(0-index)作为标题行,如果传入的是一个整数列表,那这些行将组合成一个多级列索引。没有标题行使用header=None。

    4. name=None: 传入一列类数组类型的数据,用来作为数据的列名。如果文件数据不包含标题行,要显式的指出header=None

    5. skiprows:int类型, 类列表类型或可调函数。 要跳过的行号(0索引)或文件开头要跳过的行数(int)。如果可调用,可调用函数将根据行索引进行计算,如果应该跳过行则返回True,否则返回False。一个有效的可调用参数的例子是lambda x: x in [0, 1, 2]。

    6. skipfooter=0: int类型, 默认0。自下而上,从尾部指定跳过行数的数据。

    7. usecols=None: 指定要使用的列,如果没有默认解析所有的列。

    8. index_col=None: int或元素都是int的列表, 将某列的数据作为DataFrame的行标签,如果传递了一个列表,这些列将被组合成一个多索引,如果使用usecols选择的子集,index_col将基于该子集。

    9. squeeze=False, 布尔值,默认False。 如果解析的数据只有一列,返回一个Series。

    10. dtype=None: 指定某列的数据类型,可以使类型名或一个对应列名与类型的字典,例 {‘A’: np.int64, ‘B’: str}

    11. nrows=None: int类型,默认None。 只解析指定行数的数据。


    三 示例

    如图是演示使用的excel文件,它包含5张工作表。
    在这里插入图片描述

    1. IO:路径

    举一个IO为文件对象的例子, 有些时候file文件路径的包含较复杂的中文字符串时,pandas 可能会解析文件路径失败,可以使用文件对象来解决。

    file = 'xxxx.xlsx'
    f = open(file, 'rb')
    df = pd.read_excel(f, sheet_name='Sheet1')
    
    f.close()  # 没有使用with的话,记得要手动释放。
    
    
    # ------------- with模式 -------------------
    with open(file, 'rb') as f:
        df = pd.read_excel(f, sheet_name='Sheet1')
    

    2. sheet_name:指定工作表名

    sheet_name=‘Sheet’, 指定解析名为"Sheet1"的工作表。返回一个DataFrame类型的数据。

    df = pd.read_excel(file, sheet_name='Sheet1')
    

    在这里插入图片描述

    sheet_name=[0, 1, ‘Sheet1’], 对应的是解析文件的第1, 2张工作表和名为"Sheet1"的工作表。它返回的是一个有序字典。结构为{name:DataFrame}这种类型。

    df_dict = pd.read_excel(file, sheet_name=[0,1,'Sheet1'])
    

    在这里插入图片描述

    sheet_name=None 会解析该文件中所有的工作表,返回一个同上的字典类型的数据。

    df_dict = pd.read_excel(file, sheet_name=None)
    

    在这里插入图片描述

    3. header :指定标题行

    header是用来指定数据的标题行,也就是数据的列名的。本文使用的示例文件具有中英文两行列名,默认header=0是使用第一行数据作为数据的列名。

    df_dict = pd.read_excel(file, sheet_name='Sheet1')
    

    在这里插入图片描述

    header=1, 使用指定使用第二行的英文列名。

    df_dict = pd.read_excel(file, sheet_name='Sheet1', header=1)
    

    在这里插入图片描述

    需要注意的是,如果不行指定任何行作为列名,或数据源是无标题行的数据,可以显示的指定header=None来表明不使用列名。

    df_dict = pd.read_excel(file, sheet_name='Sheet1', header=None)
    

    4. names: 指定列名

    指定数据的列名,如果数据已经有列名了,会替换掉原有的列名。

    df = pd.read_excel(file, sheet_name='Sheet1', names=list('123456789ABCDE'))
    

    在这里插入图片描述

    上图是header=0默认第一行中文名是标题行,最后被names给替换了列名,如果只想使用names,而又对源数据不做任何修改,我们可以指定header=None

    df = pd.read_excel(file, sheet_name='Sheet1', names=list('123456789ABCDE'), header=None)
    

    在这里插入图片描述

    5. index_col: 指定列索引

    df = pd.read_excel(file, sheet_name='Sheet1', header=1, index_col=0)
    

    在这里插入图片描述

    6. skiprows:跳过指定行数的数据

    df = pd.read_excel(file, sheet_name='Sheet1', skiprows=0)
    

    在这里插入图片描述

    df = pd.read_excel(file, sheet_name='Sheet1', skiprows=[1,3,5,7,9,])
    

    在这里插入图片描述

    header与skiprows在有些时候效果相同,例skiprows=5和header=5。因为跳过5行后就是以第六行,也就是索引为5的行默认为标题行了。需要注意的是skiprows=5的5是行数,header=5的5是索引为5的行。

    df = pd.read_excel(file, sheet_name='Sheet1', header=5)
    

    在这里插入图片描述

    df = pd.read_excel(file, sheet_name='Sheet1', skiprows=5)
    

    在这里插入图片描述

    7. skipfooter:省略从尾部的行数据

    原始的数据有47行,如下图所示:
    在这里插入图片描述

    从尾部跳过5行:

    df = pd.read_excel(file, sheet_name='Sheet1', skipfooter=5)
    

    在这里插入图片描述

    8.dtype 指定某些列的数据类型

    示例数据中,测试编码数据是文本,而pandas在解析的时候自动转换成了int64类型,这样codes列的首位0就会消失,造成数据错误,如下图所示

    在这里插入图片描述

    指定codes列的数据类型:

    df = pd.read_excel(file, sheet_name='Sheet1', header=1, dtype={'codes': str})
    

    在这里插入图片描述

    展开全文
  • 假设有Excel文件data.xlsx,其中内容为现在需要将这个Excel文件中的数据读入pandas,并且在后续的处理中不关心ID,还需要把sex的female替换为1,把sex的male替换为0。本文演示有关的几个操作。(1)导入pandas...

    假设有Excel文件data.xlsx,其中内容为

    现在需要将这个Excel文件中的数据读入pandas,并且在后续的处理中不关心ID列,还需要把sex列的female替换为1,把sex列的male替换为0。本文演示有关的几个操作。

    (1)导入pandas模块

    >>> import pandas as pd

    (2)把Excel文件中的数据读入pandas

    >>> df = pd.read_excel('data.xlsx')

    >>> df

    ID age height sex weight

    张三 1 39 181 female 85

    李四 2 40 180 male 80

    王五 3 38 178 female 78

    赵六 4 59 170 male 66

    (3)删除ID列

    可以得到新的DataFrame:

    >>> df.drop('ID', axis=1)

    age height sex weight

    张三 39 181 female 85

    李四 40 180 male 80

    王五 38 178 female 78

    赵六 59 170 male 66

    也可以直接在原DataFrame上原地删除:

    >>> df.drop('ID', axis=1, inplace=True)

    >>> df

    age height sex weight

    张三 39 181 female 85

    李四 40 180 male 80

    王五 38 178 female 78

    赵六 59 170 male 66

    (4)替换sex列

    方法一:使用replace()方法替换sex列,得到新的DataFrame,如果指定参数inplace=True,则可以原地替换。

    >>> df.replace({'female':1, 'male':0})

    age height sex weight

    张三 39 181 1 85

    李四 40 180 0 80

    王五 38 178 1 78

    赵六 59 170 0 66

    方法二:使用map()方法+lambda表达式,原地替换。

    >>> df1 = df[:]

    >>> df1['sex'] = df1['sex'].map(lambda x:1 if x=='female' else 0)

    >>> df1

    age height sex weight

    张三 39 181 1 85

    李四 40 180 0 80

    王五 38 178 1 78

    赵六 59 170 0 66

    方法三:使用map()方法+字典,原地替换。

    >>> df1 = df[:]

    >>> df1['sex'] = df1['sex'].map({'female':1, 'male':0})

    >>> df1

    age height sex weight

    张三 39 181 1 85

    李四 40 180 0 80

    王五 38 178 1 78

    赵六 59 170 0 66

    方法四:使用loc类,原地替换。

    >>> df1 = df[:]

    >>> df1.loc[df['sex']=='female', 'sex'] = 1

    >>> df1.loc[df['sex']=='male', 'sex'] = 0

    >>> df1

    age height sex weight

    张三 39 181 1 85

    李四 40 180 0 80

    王五 38 178 1 78

    赵六 59 170 0 66

    展开全文
  • pandas 读取excel 指定sheet

    万次阅读 2019-03-09 15:49:12
    pandas 读取excel 指定sheet 1,准备excel 文件 文件2内容 2,python 代码 import pandas as pd ; #文件路径 file_path='C:/Users/ruibc/Desktop/python/rainbow_py1.xlsx' #读取sheet的名字 ...
  • pandas读取 Excel 文件超长报错

    千次阅读 2020-12-02 22:04:26
    python的pandas读取excel中的数据过长时,会发出现如下报错: assert 0 <= self.rowx < X12_MAX_ROWS 解决办法: 安装openpyxl: pip install openpyxl pandas的read_excel方法中,可以改变度取引擎,因此...
  • pandas读取excel文件

    千次阅读 2018-12-13 08:52:50
    首先我们读取以下excel文件: 有六个字段和19973条数据 在pycharm中读取代码如下: import pandas as pd people = read_excel("C:/Users/Administrator/Desktop/People.xlsx")#读取 print(people....
  • Pandas读取excel文件(pandas.read_excel)

    千次阅读 2020-07-15 20:49:23
    Pandas读取excel文件[pandas.read_excel]说明一、pandas.read_excel函数及参数二、io三、sheet_name四、header、index_col五、usecols六、skiprows七、names八、dtype![在这里插入图片描述]...
  • 一、读取Excel文件   使用pandas的**read_excel()**方法,可通过文件路径直接读取。注意到,在一个excel文件中有多个sheet,因此,对excel文件的读取实际上是读取指定文件、并同时指定sheet下的数据。可以一次读取...
  • pandas读取Excel文件

    2019-05-16 15:13:00
    In[7]: import pandas as pd filname = 'ch02数据导入\\student.xlsx' ...data = pd.read_excel(filname) data Out[7]: 姓名年龄...
  • pandas读取excel使用read_excel()中的usecols参数读取指定
  • 下面小编就为大家分享一篇使用实现pandas读取csv文件指定的前几行,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • Python+Pandas读取excel或者多保存为列表

    万次阅读 多人点赞 2019-03-05 12:38:16
    1. 读取保存为list,项目名称为例: import pandas as pd def excel_one_line_to_list(): df = pd.read_excel(&quot;/Users/Devintern/Documents/pachong/ML_flow/pachong/qmp/files/投资事件导出...
  • read_excel 函数 官方文档:http://pandas.pydata.org/pandas docs/stable/reference/api/pandas.read_excel....pandas.read_excel(io, sheet_name=0, header=0, names=None, index_col=None, usecols=...
  • 使用 usecols 参数, 读取 excel 表格指定 读取B至E pd.read_excel('usecols.xlsx', usecols='B:E') 读取 0 和 2 pd.read_excel('usecols.xlsx', usecols=[0, 2]) 指定列名 pd.read_excel('...
  • pandas.read_excel(io,sheet_name=0,header=0,names=None,index_col=None,usecols=None,squeeze=False,dtype=None,engine=None,converters=None,true_values=None,false_values=None,skiprows=None,nrows=None,na_...
  • Pandas读取excel文件中的制定日期记录

    千次阅读 2019-09-06 09:43:51
    # 读取excel文件内容 df = pd . read_excel ( 'daofang.xlsx' , sheet_name = 'test' ) # 查看日期存储格式 print ( '日期存储格式为:' , df [ '日期' ] . dtype ) # 筛选2019/8/3号的数据 dfday = df ...
  • pandas读取excel文件(内含多张表)

    万次阅读 2018-12-13 14:33:33
    读取excel主要通过read_excel函数实现,除了pandas还需要安装第三方库xlrd。 pd.read_excel(io, sheetname=0, header=0, skiprows=None, skip_footer=0, index_col=None, names=None, parse_cols=None, parse_...
  • 读取excel文件: pandas.read_excel() 保存excel文件: pandas.to_excel() pandas.read_excel(io, sheet_name=0, header=0, names=None, index_col=None, usecols=None, squeeze=False, dtype=None, engine=None, ...
  • 二:pandas模块读取excel文件 1.pandx简介:pandas是基于NumPy的为了解决数据分析任务而创建的工具。pandas模块提供了高效地操作大型数据集所需的工具,对于大批量的数据分析是很方便的。   2.读取excel...
  • 遇到的问题: 在用pandas读一长串数字,比如身份证号、银行卡号等,显示出来...在读取源文件是指定读取类型即可,如下: pd.read_csv(inpath, converters={"列名1":str, "列名2":str}) (注:inpath是文件路径) ...
  • python--pandas读取excel

    千次阅读 2021-04-06 18:02:17
    对excel文件的读取是...Excel文件的格式为xls和xlsx,pandas读取excel文件需要安装依赖库xlrd和openpyxl。 !注意:当xlrd>=2.0时,只支持xls格式,不再支持xlsx。 python3.9 win10 64bit pandas==1.2.1 xlrd==.
  • 一、安装环境 1:pandas依赖处理Excel的xlrd模块,所以我们需要提前安装这个,安装命令是:pip install xlrd 2:安装pandas模块还需要一定的编码环境,所以我们自己在安装的时候,确保你的电脑有这些环境:Net.4 、VC-...
  • excel中我们可能会有000001这样的代码,但是pandas读取就变成了1,自动把前面的0删除了,在excel中设置成文本格式也不起作用 解决方法 为了保留原始的数字字符串的格式,可以指定dtype=str,来将原始数据按字符串...
  • 问题描述:在当前文件夹中有一个存放同一门课程两个班级同学成绩的Excel文件“学生成绩.xlsx”,每个工作表中存放一个班级的成绩。编写程序,使用pandas读取其中的数据,然后绘制柱状图...
  • pandas读取csv文件指定表头

    千次阅读 2020-07-09 01:26:18
    python读csv文件指定行为表头或无表头 · pd.read_csv()方法中header参数,默认为0,标签为0(即第1行)的行为表头。若设置为-1,则无表头。示例如下: (1)不设置header参数(默认)时: df1 = pd.read_csv(...
  • pandas读取excel使用 read_excel() 函数 import pandas as pd df = pd.read_excel('goods_base.xlsx') sheet_name 参数, 指定读取 sheet 子表 df = pd.read_excel('sheet_name.xlsx', sheet_name=2) df = pd....
  • pandas读取excel文档,每标题及标题下的内容,总行数,总数 import pandas ''' ''' # file_path为excel的文件路径 def read_excel(file_path): # 读取excel df=pandas.read_excel(file_path) # len出excel的...
  • Pandas是python的一个数据分析包,纳入了大量库和一些标准的数据模型...一、安装包pandas处理Excel需要xlrd、openpyxl依赖包pip3 install pandaspip3 install xlrdpip3 install openpyxl二、创建Excel,写入数据impo...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,382
精华内容 2,552
关键字:

pandas读取excel文件指定列