精华内容
下载资源
问答
  • 使用pandas读取excel

    万次阅读 多人点赞 2018-10-30 15:53:01
    Excel是微软的经典之作,在日常工作中的数据整理、分析和可视化方面,有其独到的优势,尤其在你熟练应用了函数和数据透视等高级功能之后,Excel可以大幅度提高你的工作效率。但如果数据量超大,Excel的劣势也就随之...

    本文为作者原创,未经允许不得擅自转载。

    Excel是微软的经典之作,在日常工作中的数据整理、分析和可视化方面,有其独到的优势,尤其在你熟练应用了函数和数据透视等高级功能之后,Excel可以大幅度提高你的工作效率。但如果数据量超大,Excel的劣势也就随之而来,甚至因为内存溢出无法打开文件,后续的分析更是难上加难。那么,有什么更好的解决办法吗?工欲善其事,必先利其器,在这里我们介绍使用Python的pandas数据分析包来解决此问题。

    pd.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_values=None, parse_dates=False, 
                  date_parser=None, thousands=None, comment=None, skipfooter=0, 
                  convert_float=True, **kwds)
    

    pandas读取Excel后返回DataFrame,接下来我们就pd.read_excel()的常用参数进行详细解析。


    目录

    1、io,Excel的存储路径

    2、sheet_name,要读取的工作表名称

    3、header, 用哪一行作列名

    4、names, 自定义最终的列名

    5、index_col, 用作索引的列

    6、usecols,需要读取哪些列

    7、squeeze,当数据仅包含一列

    8、converters ,强制规定列数据类型

    9、skiprows,跳过特定行

    10、nrows ,需要读取的行数

    11、skipfooter , 跳过末尾n行


    【文中使用英超、西甲的排名积分榜及射手榜作为原始数据~~~】


    1、io,Excel的存储路径

    •  建议使用英文路径以及英文命名方式。
    import pandas as pd
    io = r'C:\Users\Administrator\Desktop\data.xlsx'

    2、sheet_name,要读取的工作表名称

    • 可以是整型数字、列表名或SheetN,也可以是上述三种组成的列表
    • 整型数字:目标sheet所在的位置,以0为起始,比如sheet_name = 1代表第2个工作表。

    data = pd.read_excel(io, sheet_name = 1)
    data.head()

    • 列表名:目标sheet的名称,中英文皆可。
    data = pd.read_excel(io, sheet_name = '英超射手榜')
    data.head()

    • SheetN:代表第N个sheet,S要大写,注意与整型数字的区别。
    data = pd.read_excel(io, sheet_name = 'Sheet5')
    data.head()

    • 组合列表: sheet_name = [0, '英超射手榜', 'Sheet4'],代表读取三个工作表,分别为第1个工作表、名为“英超射手榜”的工作表和第4个工作表。显然,Sheet4未经重命名。
    • sheet_name 默认为0,取Excel第一个工作表。如果读取多个工作表,则显示表格的字典。对于初学者而言,建议每次读取一个工作表,然后进行二次整合。
    data = pd.read_excel(io, sheet_name = ['英超积分榜', '西甲积分榜'], nrows = 5)
    # sheet_name = ['英超积分榜', '西甲积分榜'] ,返回两个工作表组成的字典
    data

    3、header, 用哪一行作列名

    •  默认为0 ,如果设置为[0,1],则表示将前两行作为多重索引。
    data = pd.read_excel(io, sheet_name = '英超积分榜', header = [0,1]) 
    # 前两行作为列名。
    data.head()

    4、names, 自定义最终的列名

    • 一般适用于Excel缺少列名,或者需要重新定义列名的情况。
    • 注意:names的长度必须和Excel列长度一致,否则会报错
    data = pd.read_excel(io, sheet_name = '英超射手榜', 
                         names = ['rank','player','club','goal','common_goal','penalty'])
    data.head()

    5、index_col, 用作索引的列

    • 可以是工作表列名称,如index_col = '排名';
    • 可以是整型或整型列表,如index_col = 0 或 [0, 1],如果选择多个列,则返回多重索引。
    data = pd.read_excel(io, sheet_name = '英超射手榜', index_col = '排名')
    data.head()

     

    data = pd.read_excel(io, sheet_name = '英超射手榜', index_col = [0, 1])
    data.head()

    6、usecols,需要读取哪些列

    • 可以使用整型,从0开始,如[0,2,3];
    • 可以使用Excel传统的列名“A”、“B”等字母,如“A:C, E” ="A, B, C, E",注意两边都包括。
    • usecols 可避免读取全量数据,而是以分析需求为导向选择特定数据,可以大幅提高效率。
    data = pd.read_excel(io, sheet_name = '西甲射手榜', usecols = [0, 1, 3])
    data.head()

    data = pd.read_excel(io, sheet_name = '西甲射手榜', usecols = 'A:C, E')
    data.head()
    # 啊?什么!!为啥不见C罗??
    # 大佬,C罗转会去尤文图斯啦~~~~

     

    7、squeeze,当数据仅包含一列

    •  squeeze为True时,返回Series,反之返回DataFrame。
    data = pd.read_excel(io, sheet_name = 'squeeze', squeeze  = True)
    data.head()

    data = pd.read_excel(io, sheet_name = 'squeeze', squeeze  = False)
    data.head()

    8、converters ,强制规定列数据类型

    • converters = {'排名': str, '场次': int}, 将“排名”列数据类型强制规定为字符串(pandas默认将文本类的数据读取为整型),“场次”列强制规定为整型;

    • 主要用途:保留以文本形式存储的数字。

    data = pd.read_excel(io, sheet_name = 'converters')
    data['排名'].dtype

    data = pd.read_excel(io, sheet_name = 'converters', converters = {'排名': str, '场次': float})
    data['排名'].dtype

    9、skiprows,跳过特定行

    •  skiprows= n, 跳过前n行; skiprows = [a, b, c],跳过第a+1,b+1,c+1行(索引从0开始);
    • 使用skiprows 后,有可能首行(即列名)也会被跳过。
    data = pd.read_excel(io, sheet_name = '英超射手榜', skiprows = [1,2,3]) 
    # 跳过第2,3,4行数据(索引从0开始,包括列名)
    data.head()

     

    data = pd.read_excel(io, sheet_name = '英超射手榜', skiprows = 3)
    data.head()

    10、nrows ,需要读取的行数

    • 如果只想了解Excel的列名及概况,不必读取全量数据,nrows会十分有用。 
    data = pd.read_excel(io, sheet_name = '英超射手榜', nrows = 10)
    data

    11、skipfooter , 跳过末尾n行

    data = pd.read_excel(r'C:\Users\Administrator\Desktop\data.xlsx' , 
                         sheet_name = '英超射手榜', skipfooter = 43)
    #  skipfooter = 43, 跳过末尾43行(索引从0开始)
    data

    欢迎搜索今日头条“海阔天空爱阅读”,欣赏更多文章~~

    展开全文
  • 读取Excel读取Excel读取Excel读取Excel读取Excel读取Excel读取Excel
  • 读取EXCEL读取EXCEL读取EXCEL读取EXCEL读取EXCEL读取EXCEL读取EXCEL读取EXCEL读取EXCEL读取EXCEL读取EXCEL读取EXCEL读取EXCEL读取EXCEL读取EXCEL读取EXCEL读取EXCEL读取EXCEL读取EXCEL读取EXCEL读取EXCEL读取EXCEL...
  • Matlab读取excel文件中的数据

    万次阅读 多人点赞 2018-07-24 15:08:58
    MATLAB读取excel中的数据 读取sheet1中的数据 [num,txt,raw]=xlsread('C:\Users\Administrator\Desktop\test\a.xls') %num返回的是excel中的数据,txt输出的是文本内容,row输出的是未处理数据 %一般情况下,...

    一、 Matlab读取excel中的数据

    1.1 读取sheet1中的数据

    % num返回的是excel中的数据,txt输出的是文本内容,raw输出的是未处理数据
    [num,txt,raw]=xlsread('C:\Users\Administrator\Desktop\test\a.xls') 
    
    % 一般情况下,我们读取的是excel中的数据,所以可以直接用下面的命令,只输出数据矩阵便可
    [num]=xlsread('C:\Users\Administrator\Desktop\test\a.xls') 

    1.2 读取指定sheet中的数据

    如果想读取excel中的第二个sheet中的数据,可以输入下面命令

    % 读取excel中第二个Sheet内容
    [num]=xlsread('C:\Users\Administrator\Desktop\test\a.xls', 2)

    1.3 读取指定单元格中的数据

    %读取excel中,第二个sheet,A2-C5之间的内容
    [num]=xlsread('C:\Users\Administrator\Desktop\test\a.xls', 2, 'A2:C5')

    展开全文
  • JAVA读取 excelJAVA读取 excel
  • python读取excel

    2018-04-08 16:20:38
    python读取excel,能够读取简单的excel文件,将其转换为txt
  • jquery读取excel组件

    2020-10-28 09:12:01
    jquery读取excel组件,可读取excel表格中的内容
  • python读取Excel表格文件

    万次阅读 多人点赞 2019-07-26 10:55:52
    python读取Excel表格文件,例如获取这个文件的数据 python读取Excel表格文件,需要如下步骤: 1、安装Excel读取数据的库-----xlrd 直接pip install xlrd安装xlrd库 #引入Excel库的xlrd import xlrd 2、...

    python读取Excel表格文件,例如获取这个文件的数据

    python读取Excel表格文件,需要如下步骤:

    1、安装Excel读取数据的库-----xlrd

    直接pip install xlrd安装xlrd库

    #引入Excel库的xlrd
    import xlrd

    2、获取Excel文件的位置并且读取进来

    #导入需要读取Excel表格的路径
    data = xlrd.open_workbook(r'C:\Users\NHT\Desktop\Data\\test1.xlsx')
    table = data.sheets()[0]

    3、读取指定的行和列的内容,并将内容存储在列表中(将第三列的时间格式转换)

    #创建一个空列表,存储Excel的数据
    tables = []
    
    
    #将excel表格内容导入到tables列表中
    def import_excel(excel):
       for rown in range(excel.nrows):
          array = {'road_name':'','bus_plate':'','timeline':'','road_type':'','site':''}
          array['road_name'] = table.cell_value(rown,0)
          array['bus_plate'] = table.cell_value(rown,1)
          #将Excel表格中的时间格式转化
          if table.cell(rown,2).ctype == 3:
             date = xldate_as_tuple(table.cell(rown,2).value,0)
             array['timeline'] = datetime.datetime(*date)
          array['road_type'] = table.cell_value(rown,3)
          array['site'] = table.cell_value(rown,4)
          tables.append(array)

    4、运行程序

    if __name__ == '__main__':
       #将excel表格的内容导入到列表中
       import_excel(table)
       #验证Excel文件存储到列表中的数据
       for i in tables:
           print(i)

    5、最终的运行效果如下:

    6、完整的程序代码:

    import xlrd
    from xlrd import xldate_as_tuple
    import datetime
    
    #导入需要读取的第一个Excel表格的路径
    data1 = xlrd.open_workbook(r'C:\Users\NHT\Desktop\Data\\test.xlsx')
    table = data1.sheets()[0]
    #创建一个空列表,存储Excel的数据
    tables = []
    #将excel表格内容导入到tables列表中
    def import_excel(excel):
       for rown in range(excel.nrows):
          array = {'road_name':'','bus_plate':'','timeline':'','road_type':'','site':''}
          array['road_name'] = table.cell_value(rown,0)
          array['bus_plate'] = table.cell_value(rown,1)
          if table.cell(rown,2).ctype == 3:
             date = xldate_as_tuple(table.cell(rown,2).value,0)
             array['timeline'] = datetime.datetime(*date)
          array['road_type'] = table.cell_value(rown,3)
          array['site'] = table.cell_value(rown,4)
          tables.append(array)
    
    if __name__ == '__main__':
       #将excel表格的内容导入到列表中
       import_excel(table)
       for i in tables:
           print(i)

                                                                  关注公众号“人工智能技术服务”,获取更多的资讯。

    展开全文
  • C++读取excel数据

    2020-08-03 19:27:16
    读取环境为Win10+VS2015,个人参考资料封装的excel读取模块用来读取Excel2007中的数据,文件为压缩文件,亲测可用。
  • Java读取Excel内容

    2017-11-29 17:13:07
    Java读取Excel内容 v Java读取Excel内容 Java读取Excel内容
  • java读取Excel

    2018-12-19 12:09:42
    java读取Excel2016
  • Excel 读取 读取Excel到Dataset中
  • python读取Excel

    2018-04-17 16:43:42
    利用python的xlrd读取Excel,正确读取合并的单元格数据,并打印所有单元格的数据
  • js读取excel

    2019-02-22 12:39:30
    js 读取excel和csv(不是node哦,可在浏览器使用哦),详情见https://mp.csdn.net/mdeditor/87876115#
  • 读取Excel数据到DataGridView(内含读取Excel2003和Excel2007两种格式)
  • c# unity 读取excel 带案例c# unity 读取excel 带案例c# unity 读取excel 带案例
  • 主要介绍了spring boot读取Excel操作,结合实例形式详细分析了spring boot解析、读取Excel相关操作技巧,需要的朋友可以参考下
  • ExcelDataReader读取Excel

    千次阅读 2019-10-28 21:02:04
    本篇主要讲如何读取Excel文件并且上传到数据库SqlServer,首先准备data.xlsx文件,我就随便新建一个表格data.xlsx,里面有person和time两张工作表: 新建数据库Demo_UploadExcel,然后新建两张表person和data 那么...

    本篇主要讲如何读取Excel文件并且上传到数据库SqlServer,首先准备data.xlsx文件,我就随便新建一个表格data.xlsx,里面有persontime两张工作表:
    data.xlsx
    新建数据库Demo_UploadExcel,然后新建两张表person和data
    那么如何读取Excel文件中person和time两张表呢?要引用NuGet包:
    ExcelDataReaderExcelDataReader.DataSet
    在这里插入图片描述装好NuGet包后,那么接下来具体怎么读呢?主要分为以下几步:

     	//1:打开文件,得到文件stream
    	var streamData = File.Open(ExcelFile, FileMode.Open, FileAccess.Read)
    	//2:得到文件reader(需要NuGet包ExcelDataReader)
    	var readerData = ExcelReaderFactory.CreateOpenXmlReader(streamData)
    	//3:通过reader得到数据(需要NuGet包ExcelDataReader.DataSet )
    	var result = readerData.AsDataSet();
    	//4:得到ExcelFile文件的表Sheet
    	var sheet = result.Tables[Sheet];
    

    得到sheet后,就可以获得各种属性了,比如excel表格多少行,列

    	var cols = sheet.Columns.Count;//ExcelFile的表Sheet的列数
    	var count = sheet.Rows.Count;//Sheet中的行数
    

    下面是读取Excel文件并上传到sql的代码:
    新建mySqlServer类,封装一些数据库访问的方法和属性:

    class MySqlServer
        {
            public static string database = "Server=.;database=Demo_UploadExcel;Integrated Security=True";
            						//静态字段,每个mySqlServer都可以使用该字符串
            public SqlConnection myConnection;//每个mySqlServer对象拥有自己
            								  //各自的SqlConnection
    
            public void open()
            {
                myConnection = new SqlConnection(database);
                myConnection.Open();
            }
            public void close()
            {
                myConnection.Close();
            }
            
            //增:向表中插入一条记录
            public void add(string sqlStr)
            {
                SqlCommand mySqlCom = new SqlCommand(sqlStr, myConnection);
                mySqlCom.ExecuteNonQuery();
            }
    
            //查:表Table是否为空
            public bool isEmpty(string Table)
            {
                string s = $"select * from {Table}";
                SqlCommand mySqlCom = new SqlCommand(s, myConnection);
                using (var myDR = mySqlCom.ExecuteReader())
                {
                    if (myDR.HasRows)
                        return false;
                }
    
                return true;
            }
        }
    

    然后定义一个方法:

    public static void UploadExcelToSqlServer(string ExcelFile, string Sheet, string Table)
            {
    
    
                //1:打开文件,得到文件stream
                using (var streamData = File.Open(ExcelFile, FileMode.Open, FileAccess.Read))
                {
                    //2:得到文件reader(需要NuGet包ExcelDataReader)
                    using (var readerData = ExcelReaderFactory.CreateOpenXmlReader(streamData))
                    {
                        //3:通过reader得到数据(需要NuGet包ExcelDataReader.DataSet )
                        var result = readerData.AsDataSet();
                        //4:得到ExcelFile文件的表Sheet
                        var sheet = result.Tables[Sheet];
                        var cols = sheet.Columns.Count;//ExcelFile的表Sheet的列数
                        var count = sheet.Rows.Count;//Sheet中的行数
    
    
                        MySqlServer mySqlServer = new MySqlServer();
                        mySqlServer.open();
    
                        //如果数据库中表为空,则插入
                        if (mySqlServer.isEmpty(Table))
                        {
                            Console.WriteLine($"正在向数据库中表{Table}上传文件{ExcelFile}的表格{Sheet}中的数据....");
                            for (int i = 1; i < sheet.Rows.Count; i++)//行
                            {
                                string mySqlStrAdd = $"insert into {Table} values()";
                                for (int j = 0; j < cols; j++)
                                {
                                    var s = sheet.Rows[i][j].ToString();
                                    mySqlStrAdd = mySqlStrAdd.Insert(mySqlStrAdd.Length - 1, $"'{s}',");
                                }
    
                                //删除","
                                mySqlStrAdd = mySqlStrAdd.Remove(mySqlStrAdd.Length - 2, 1);
    
                                string processBar = $"{i}/{count - 1}";
    
                                //mySqlStrAdd=mySqlStrAdd.Insert(mySqlStrAdd.Length,$"order by ")
                                mySqlServer.add(mySqlStrAdd);
                                for (int j = 0; j < processBar.Length; j++)
                                {
                                    Console.Write("\b");
                                }
    
                                Console.Write(processBar);
    
                            }
    
                            Console.WriteLine("\n上传完成");
                        }
                        else
                        {
                            Console.WriteLine($"数据库中表{Table}不为空,无须重复上传");
                        }
    
    
                        mySqlServer.close();
                    }
    
                }
            }
    

    接下来调用就很方便了

    static void Main(string[] args)
            {
                string data = "data.xlsx";//有两张表:person、time
                UploadExcelToSqlServer(data, "person", "person");
                UploadExcelToSqlServer(data, "time", "time");
    
            }
    

    结果:
    在这里插入图片描述在这里插入图片描述删除表time数据,然后继续执行程序,会提示勿重复上传
    在这里插入图片描述
    这里只是简单的记录如何读取Excel文件,实际上效率很低,上传十万条数据就很慢了,有兴趣的可以去研究
    在这里插入图片描述

    展开全文
  • Unity 读取Excel表的内容

    万次阅读 多人点赞 2018-04-20 13:49:08
    那么我们程序就需要通过读取Excel的内容,已供程序使用。 所以这一篇就讲讲Unity如何读取Excel的内容的。 准备 首先我们要用到Excel.dll,ICSharpCode.SharpZipLib.dll,System.Data.dll这些库,具体...
  • COM组件读取Excel

    2010-09-19 18:23:43
    COM组件读取ExcelCOM组件读取ExcelCOM组件读取ExcelCOM组件读取ExcelCOM组件读取ExcelCOM组件读取Excel
  • C# winform 读取Excel表格

    2018-05-29 10:30:31
    C# winform 读取Excel表格中的数据,C# winform 读取Excel表格中的数据
  • 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:跳...
  • QT 快速读取Excel文件

    2018-03-10 00:00:20
    QT 快速读取Excel文件,QT 快速读取Excel文件,QT 快速读取Excel文件。
  • java读取excel

    热门讨论 2011-08-17 14:06:24
    java 读取 excel,代码绝对没有错误。请放心下载,祝大家好运
  • Java 读取 excel数据

    2018-10-15 14:49:12
    实现java读取excel数据,内有测试数据及相应的jar包,运行无问题
  • vb.net读取excel表格

    2018-12-03 15:38:26
    vb.net读取excel表格内容,vb2005引用excel2007读取表格内容。
  • 易语言读取excel文件到高级表格源码,读取excel文件到高级表格,转换字母
  • Laravel读取Excel

    千次阅读 2020-11-11 15:30:15
    - ... 2. 下载完成后,将PHPExcel文件夹放在laravel的vendor目录下;...4. 例子:读取Excel: 封装: // 读取excel // $excel_file是excel文件的绝对路径;$start_row是起始行,默认2;$end_row是截至行,默认.
  • matlab读取excel表格

    2018-08-02 13:36:13
    可以通过matlab读取excel表格并画图,可以索引至第n列,功能易实现,可验证
  • js读取excel表格的js文件,js读取excel表格的js文件,js读取excel表格的js文件,js读取excel表格的js文件,

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 145,256
精华内容 58,102
关键字:

读取excel