• python pandas读写execl Sky


    pandas:数据处理最常用的分析库之一,可以读取各种各样格式的数据文件,一般输出dataframe格式,功能强大
    pandas的名称来自于面板数据(panel data)和python数据分析(data analysis)。
    pandas是一个数据处理的包,本身提供了许多读取文件的函数,像read_csv(读取csv文件),read_excel(读取excel文件)等,只需一行代码就能实现文件的读取。
    pandas提供的数据结构DataFrame极大的简化了数据分析过程中一些繁琐操作, DataFrame是一张多维的表,可以把它想象成一张Excel表单。
    
    DataFrame对象的结构
    对内容的读取分有表头和无表头两种方式,默认情形下是有表头的方式,即将第一行元素自动置为表头标签,其余内容为数据;当在read_excel()方法中加上header=None参数时是不加表头的方式,即从第一行起,全部内容为数据。读取到的Excel数据均构造成并返回DataFrame表格类型
    对有表头的方式,读取时将自动地将第一行元素置为表头向量,同时为除表头外的各行内容加入行索引(从0开始)、各列内容加入列索引(从0开始)
    对无表头的方式,读取时将自动地为各行内容加入行索引(从0开始)、为各列内容加入列索引(从0开始),行索引从第一行开始
    
    
    读取excel
    读取excel主要通过read_excel函数实现,除了pandas还需要安装第三方库xlrd。
    import pandas as pd
    pd.read_excel(io, sheetname=0, header=0, skiprows=None, skip_footer=0, index_col=None, names=None, parse_cols=None, parse_dates=False, date_parser=None, na_values=None, thousands=None, convert_float=True, has_index_names=None, converters=None, dtype=None, true_values=None, false_values=None, engine=None, squeeze=False, **kwds)
    read_excel的原型:pd.read_excel(io, sheet_name=0, header=0, names=None, index_col=None, usecols=None)
    该函数主要的参数为io、sheetname、header、names、encoding。
    io:excel文件,可以是文件路径、文件网址、file-like对象、xlrd workbook;如果命名为中文,在python2.7中,需要使用decode()来解码成unicode字符串,例如: pd.read_excel('示例.xlsx'.decode('utf-8))
    sheetname:返回指定的sheet,参数可以是字符串(某个sheet名)、整型(sheet索引)、list(元素为字符串和整型,返回字典{'key':'sheet'})如['Sheet1','Sheet2'];none(返回字典,全部sheet);
    header:指定数据表的表头,参数可以是int、list of ints,即为索引行数为表头;
    names:返回指定name的列,即列名,参数为array-like对象。
    encoding:关键字参数,指定以何种编码读取。
    usecols:读取指定的列,例如想要读取第一列和第二列数据:pd.read_excel(“example.xlsx”, sheet_name=None, usecols=[0, 1])
    该函数返回pandas中的DataFrame或dict of DataFrame对象,利用DataFrame的相关操作即可读取相应的数据。.,
    
    #代码示例:
    import pandas as pd
    excel_path = 'example.xlsx'
    df=pd.read_execl(file)
    print (df) -->默认是打印第1个工作表sheet1中的数据,返回的是DataFrame类型,这是一种表格数据类型,它清晰地展示出了数据的表格型结构
    df = pd.read_excel(excel_path, sheetname=None)
    print(df['sheet1'].example_column_name)
    
    print (df.head())  #只打印前5行数据
    print (df.columns)  #打印列标题
    --> Index(['aa', 'bb', 'cc', 'dd', 'ee', 'ff', 'gg'], dtype='object')
    print (df.index)  #打印行
    --> RangeIndex(start=0, stop=13, step=1)
    print (df['bb']) #打印指定的列,将bb这列的数据全部打印出来
    print (df['bb'].values) #打印指定的列,将bb这列的数据全部打印出来。
    df['bb']和df['bb'].values:两者打印出来的展示的格式不一样
    print (df.values) #打印除第1行以外的值,返回类型为ndarray(二维)
    --> [['a2' 'b2' 'c2' 'd2' 'e2' 'f2' 'g2']
    ['a3' 'b3' 'c3' 'd3' 'e3' 'f3' 'g3']]
    print (df.values[0]) #打印第1行的值,(不包括列表标题,实际是算第2行)。返回类型为ndarray(一维)
    --> ['a2' 'b2' 'c2' 'd2' 'e2' 'f2' 'g2']
    print (df.values[3,5])  #获取某个值,除去第1行的表头,index从0开始,即第5行,第6列的值
    print (df.values[:4] #打印连续多行的值,实际是从第2行到第5行的值
    print (df.values[2:5]) #实际打印的是第4,5,6行
    
    获取某列的值:
    print (df.values[:,3]) #打印某列的值,将第4列的值都打印出来
    print (df.values[:,[3,5]]) #index从0开始,打印第4列和第6列的所有值
    
    
    
    #读取同一个指定的sheet工作表:
    df=pd.read_execl(f,'Sheet2')
    df=pd.read_exec(f,sheet_name='Sheet2')
    #读取同一个execl的多个sheet工作表:
    df=pd.read_execl(f,['Sheet1','Sheet2']
    #可以通过下表读取指定的sheet工作表:
    df=pd.read_excel(file,sheet_name=1)  #1表示读取第2个sheet工作表
    df=pd.read_excel(file,sheet_name=['Sheet1',2]) #读取Sheet1和Sheet3
    #读取指定sheet的指定的某列的数值:
    df=pd.read_excel(file,sheet_name='Sheet1',usecols=['cc'])  #打印Sheet1工作表的cc这列的所有的值
    df=pd.read_excel(file,sheet_name='Sheet1',usecols=[0]) #打印Sheet1工作表的第1列的所有的值
    df=pd.read_excel(file,sheet_name='Sheet1',usecols=[0,3])#打印Sheet1工作表的第1列和第4列的所有的值
    
    ExcelFile:为了更方便地读取同一个文件的多张表格:
    data=pandas.ExcelFile(file)  
    print (data) --><pandas.io.excel._base.ExcelFile object at 0x00000152EFFF32B0>
    print (data.sheet_names)  #获取execl中所有的工作表名
    --》['Sheet1', 'Sheet2', 'Sheet3']
    sheets = pandas.read_excel(data)  #sheet_name不写,默认为查第一个sheet的数据
    sheets = pandas.read_excel(data, sheet_name="Sheet2")  #查看指定sheet的数据
    
    print (data.parse('Sheet1')) #获取工作表Sheet1中所有的数据(带序号)
    
    
    
    2. 写入excel
    写入excel主要通过pandas构造DataFrame,调用to_excel方法实现。
    只有DataFrame对象才能使用to_excel方法
    DataFrame.to_excel(excel_writer, sheet_name='Sheet1', na_rep='', float_format=None, columns=None, header=True, index=True, index_label=None, startrow=0, startcol=0, engine=None, merge_cells=True, encoding=None, inf_rep='inf', verbose=True, freeze_panes=None)
    
    该函数主要参数为:excel_writer。
    excel_writer:写入的目标excel文件,可以是文件路径、ExcelWriter对象;
    sheet_name:被写入的sheet名称,string类型,默认为'sheet1';
    na_rep:缺失值表示,string类型;
    header:是否写表头信息,布尔或list of string类型,默认为True;
    index:是否写行号,布尔类型,默认为True;
    encoding:指定写入编码,string类型。
    
    import pandas as pd
    writer = pd.ExcelWriter('output.xlsx')
    df1 = pd.DataFrame(data={'col1':[1,1], 'col2':[2,2]})
    df1.to_excel(writer,'Sheet1')
    writer.save()
  • 相关阅读:
    layui table中使用checkbox
    layui 工具条实现分页
    layui 文件上传加进度条
    js验证文本框数字
    Oracle 锁表
    IIS部署新网站
    未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序解决办法
    VS问题
    利用ADO让普通人用excel读取oracle数据库表的通用办法
    Spring概念
  • 原文地址:https://www.cnblogs.com/skyzy/p/16527085.html
Copyright © 2020-2023  润新知