精华内容
下载资源
问答
  • 使用Pandas读取数据

    2019-12-20 17:04:46
    使用python的Pandas工具包读取数据 直接使用pd.read_csv()读取少量数据 import pandas as pd data_path = '../DataWarehouse/TestData/test01.csv' 文件包含标题行 df = pd.read_csv(data_path, sep='\t', encoding...

    使用python的Pandas工具包读取数据

    直接使用pd.read_csv()读取少量数据

    import pandas as pd
    data_path = '../DataWarehouse/TestData/test01.csv'
    

    文件包含标题行

    df = pd.read_csv(data_path, sep='\t', encoding='utf-8')
    

    文件不包含标题行

    header_name = ['col1', 'col2', 'col3', 'col4', 'col5']  # 指定标题行各个字段名称
    df = pd.read_csv(data_path, sep='\t', encoding='utf-8', header=None, names=header_name)
    

    读取文件指定列

    # usecols 可指定是第几列,也可直接指定列名称
    df = pd.read_csv(data_path, sep='\t', encoding='utf-8', usecols=[0,1,2])  # usecols指定第几列
    df = pd.read_csv(data_path, sep='\t', encoding='utf-8', usecols=['col1', 'col3', 'col4'])  # usecols指定列名
    

    指定特殊分隔符

    # 如果文件的分隔符是特殊字符,如退格符等特殊符号,sep接受16进制字符
    # '\x'的意思是16进制, 需用'\\x'对其中的'\'进行转义
    # 7f和5e是16进制字符,分别代表退格符和'^'
    df = pd.read_csv(data_path, sep='\\x7f\\x5e', encoding='utf-8')
    

    读取大量数据(分批次读取)

    读取单个大文件

    # 使用pandas读取数据时,如果文件比较大,则可以使用参数chunksize对其进行分批次读取
    # chunksize 是设置一次读取多少条记录,返回一个可迭代对象
    
    df_chunk = pd.read_csv(data_path, sep='\t', encoding='utf-8', chunksize=1000000)
    
    def get_chunk_data(df_chunk):
        chunks = []
        for chunk in df_chunk:
            # 每个chunk都是一个分批次读取出来的DataFrame
            chunks.append(chunk)
        # 使用panndas的concat函数,将分批次读取的DataFrame拼接起来
        # axis指定沿着哪个轴进行拼接: 0是按行拼接,1是按列拼接
        df_all = pd.concat(chunks, axis=0)
        # 删除chunks,释放内存
        del chunks
        return df_all
    
    df_all = get_chunk_data(df_chunk) 
    

    读取多个大文件

    import os
    
    def get_chunk_data(df_chunk):
        chunks = []
        for chunk in df_chunk:
            chunks.append(chunk)
        df_all = pd.concat(chunks, axis=0)
        del chunks
        return df_all
    
    def concat_files(source_path):
        """
        Paramters
        ---------
        source_path: 需要读取的大文件所在文件夹路径
        
        Returns
        -------
        df_concat: 最终所有文件合并后的DataFrame
        """
        file_list = []
        for root, dirs, files in os.walk(source_path):
            for file in files:
                src_file = os.path.join(root, file)
                file_list.append(src_file)
        temp_df = []
        for file in file_list:
            df_chunk = pd.read_csv(file, sep='\t', encoding='utf-8', chunksize=1000000)
            df_chunk_concat = get_chunk_data(df_chunk)
            temp_df.append(df_chunk_concat)
        df_concat = pd.concat(temp_df, axis=0)
        del temp_df
        return df_concat
    
    展开全文
  • python使用pandas读取数据文件

    千次阅读 2017-08-30 14:07:05
    安装sudo pip install pandas或者直接使用pycharm的Setting->Interpreter->Tool直接安装读取csv文件假设我们有如下的数据格式的tests.csv: ID Name Sex Age 1 amy male 12 2 ken female

    可以使用pandas来方便的读取csv文件,免去自己处理csv时的琐屑问题。

    安装

    sudo pip install pandas

    或者直接使用pycharm的Setting->Interpreter->Tool直接安装

    读取csv文件

    假设我们有如下的数据格式的tests.csv:

    ID Name Sex Age
    1 amy male 12
    2 ken female 13
    3 Andrew male 23
    4 Jummy female 30

    读取:df =pd.read_csv("D:\\data\\titanic\\tests.csv",encoding='utf8') ,其中encoding用于指定csv的编码格式,如果有中文,则可以使用gbk等
    读取某一列:printf(df['ID'])大小写敏感
    输出:

    0    1
    1    2
    2    3
    3    4

    第一列是表示方便
    读取某个行:printf(df.ix[1])
    输出:

    ID           2
    Name       ken
    Sex     female
    Age         13
    Name: 1, dtype: object
    展开全文
  • 使用pandas读取excel

    万次阅读 多人点赞 2018-10-30 15:53:01
    本文为作者原创,未经允许不得擅自转载。 Excel是微软的经典之作,在日常工作中的数据整理、分析和可视化方面,有其独到的优势,尤其在你熟练应用了函数和数据...工欲善其事,必先利其器,在这里我们介绍使用Python...

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

    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

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

    展开全文
  • 您可以使用带有列顺序的参数usecols:import pandas as pdfrom pandas.compat import StringIOtemp=u"""TIME XGSM2004 006 01 00 01 37 600 12004 006 01 00 02 32 800 52004 006 01 00 03 28 000 82004 006 01 00 ....

    您可以使用带有列顺序的参数usecols:

    import pandas as pd

    from pandas.compat import StringIO

    temp=u"""TIME XGSM

    2004 006 01 00 01 37 600 1

    2004 006 01 00 02 32 800 5

    2004 006 01 00 03 28 000 8

    2004 006 01 00 04 23 200 11

    2004 006 01 00 05 18 400 17"""

    #after testing replace StringIO(temp) to filename

    df = pd.read_csv(StringIO(temp),

    sep="\s+",

    skiprows=1,

    usecols=[0,7],

    names=['TIME','XGSM'])

    print (df)

    TIME XGSM

    0 2004 1

    1 2004 5

    2 2004 8

    3 2004 11

    4 2004 17

    编辑:

    您可以使用分隔符regex - 2个或更多空格,然后添加engine='python',因为警告:

    ParserWarning:回归' python'引擎,因为' c'引擎不支持正则表达式分隔符(分隔符> 1个字符,不同于' \ s +'被解释为正则表达式);您可以通过指定engine =' python'。来避免此警告

    import pandas as pd

    from pandas.compat import StringIO

    temp=u"""TIME XGSM

    2004 006 01 00 01 37 600 1

    2004 006 01 00 02 32 800 5

    2004 006 01 00 03 28 000 8

    2004 006 01 00 04 23 200 11

    2004 006 01 00 05 18 400 17"""

    #after testing replace StringIO(temp) to filename

    df = pd.read_csv(StringIO(temp), sep=r'\s{2,}', engine='python')

    print (df)

    TIME XGSM

    0 2004 006 01 00 01 37 600 1

    1 2004 006 01 00 02 32 800 5

    2 2004 006 01 00 03 28 000 8

    3 2004 006 01 00 04 23 200 11

    4 2004 006 01 00 05 18 400 17

    展开全文
  • Python 用Pandas读取数据中的行列索引,以及ix、loc、iloc的区别详解 首先read_csv读取文件 import pandas as pd import numpy as np file_path = 'data.csv' data = pd.read_csv(file_path,encoding='utf-8'...
  • 02. Pandas读取数据

    2021-01-19 21:10:51
    02. Pandas读取数据 本代码演示: pandas读取纯文本文件 读取csv文件 读取txt文件 pandas读取xlsx格式excel文件 pandas读取mysql数据表 import pandas as pd 1、读取纯文本文件 1.1 读取CSV,使用默认的标题...
  • 而待读取的文件编码不同于UTF-8时,例如为ANSI,会出现如下错误: UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb2 in position 0: invalid start byte 解决方法:通过encoding参数指定相应...
  • 1、使用pandas读取csv文件的全部数据:pd.read_csv("filepath",[encoding='编码']) 2、使用pandas读取csv文件的指定列方法:usecols=[0,1,2,...] 3、使用pandas读取csv文件的指定行方法:[skiprows=n],nrows=m 4、...
  • pandas读取数据文件的问题

    千次阅读 2020-11-10 17:08:11
    用pandas读取数据文件: import pandas as pd df = pd.read_csv('data.csv') df.to_excel('data.xls') 提示: This sheet is too large! Your sheet size is: 1495811, 2 Max sheet size is: 1048576, 16384 处理...
  • TypeError: parser_f() got an unexpected keyword argument 'index’解决方案 错误如图所示 错误点:pandas在读取csv文件时,写了一个参数index=False,导致pandas读取csv文件错误 解决方案: pd.read_csv(path,...
  • 关于Excel数据处理,很多同学可能使用过Pyhton的pandas模块,它可以轻松地读取和转换Excel数据。但是实际中Excel表格结构可能比较杂乱,数据会分散不同的工作表中,而且在表格中分布很乱,这种情况下啊直接使用...
  • python Pandas读取数据

    2021-02-04 15:26:28
    df = pd.read_csv(Fpath) # 使用pd.read_csv读取数据 df.head() #查看前几行数据 df.shape #查看数据的形状返回df的行数和列数 df.columns #查看df的列名 df.index #查看索引列 df.dtypes #查看每列的数据类型 2....
  • pandas读取数据前几行

    千次阅读 2020-05-16 18:34:06
    pandas读取数据前几行 比如需要读取excel前1000行,代码如下 代码如下: data = pd.read_excel('E:/demo.xlsx', nrows = 1000) 检验结果: print(data.shape[0]) 1000 读取成功
  • Python使用pandas读取excel表格数据

    万次阅读 多人点赞 2019-04-08 16:14:04
    使用的是Anaconda集成包则可直接使用,否则可能需要下载:pip install pandas 读取表格并得到表格行列信息 df=pd.read_excel('test.xlsx') height,width = df.shape print(height,width,type(df)) 表格如下: ...
  • pandas读取数据与基本操作

    千次阅读 2019-04-18 00:06:04
    pandas读取数据与基本操作1.读取前几行2.读取后几行3.读取第几个数据4.a.shape显示数据的格式5.a.columns显示全部的列名,a.columns.tolist()将列名转换成列表。 1.读取前几行 函数 a.head()默认读取文件的前5行...
  • pandas 读取数据

    千次阅读 2018-09-30 16:58:35
    1. read_excel pandas.read_excel(io, sheet_name=0, header=0, skiprows=None,... sheet_name=None: 要读取的表格名,None代表读取所有表格 header=None: None代表没有表头, 默认第0行是表头 skiprows=n: 忽...
  • 解决 pandas 读取数据时内存过大的问题 背景: 在我们使用pandas进行数据处理的时候,有时候发现文件在本地明明不大,但是用pandas以DataFrame形式加载内存中的时候会占用非常高的内存,这是因为pandas的处理机制...
  • Python_pandas读取数据

    2021-05-27 19:57:49
    三种数据文件的读取: 一、csv、tsv、txt 文件读取: 1)CSV文件读取: 语法格式:pandas.read_csv(文件路径) CSV文件内容如下: import pandas as pd file_path = "e:\\pandas_study\\test.csv" content = pd....
  • pandas读取数据时降低内存使用

    千次阅读 2018-12-05 19:52:24
    pandas读取数据时降低内存使用 def reduce_mem_usage(df): """ iterate through all the columns of a dataframe and modify the data type to reduce memory usage. """ ...
  • 3、使用Pandas读取excel数据, 4、Pandas读取指定(限定)行的excel数据, 5、Pandas读取指定(限定)列的excel数据, 6、Pandas读取同时指定行和列的excel数据, 7、pandas处理Excel数据成为字典, 8、pandas数据...
  • Numpy+Pandas读取数据

    2018-06-10 14:03:00
    1、为什么使用Numpy+Pandas  在使用Numpy读取csv文件时,文件中含有字符串时,会出现ValueError错误 ...2、Pandas读取csv文件:     转载于:https://www.cnblogs.com/tangbochu/p/9163166.html...
  • Pandas 读取文本数据

    千次阅读 2018-04-16 16:15:23
    Pandas 读取文本数据 标签(空格分隔): python pandas Pandas 读取文本数据 pandas解析函数 如果原始数据是有标题的 read_csv调用 read_table 这里可以指定seq=’\s+’等正则表达式来当分割符 ...
  • pandas读取数据(一)

    2020-05-02 23:18:16
    Pandas读取方法 csv、tsv、txt 逗号分隔(csv)、tab分割的纯文本文件(txt) pd.read_csv excel 微软中xls或者xlsx文件 pd.read_excel mysql 关系型数据库 pd.read_sql 2、代码实例 import pandas as pd .....
  • pandas读取外部数据.flv

    2020-01-26 15:06:52
    直接使用pandas读取excel,及其方便好用,可以通过录制视频内容查看如何封装pandas常用读取excel和csv方法,好用且简单
  • print("-"*10+"Python如何读取数据源和熟悉数据"+"-"*10) print("哔哩哔哩Python课程,主要讲用pandas获取数据源:") print("1.导入数据\n2.熟悉数据") print('\n') print("-"*15+"1.导入数据"+"-"*15) import ...
  • pandas读取excel数据

    千次阅读 2016-09-13 10:48:03
    最近学数据分析,需要读取excel数据,用pandas读取excel数据还是很方便的,写了一个函数读取数据:def load_excel_data(filename): data = pd.ExcelFile(filename) print data.sheet_names df = data.parse(...
  • 3、使用Pandas读取用英文逗号“,”分隔的.txt文件,sep=','可以省略 4、使用Pandas读取其他分割符的.txt文件,sep='分隔符'写清楚 5、使用Pandas读取.txt文件指定的行和列 6、使用Pandas写入.txt文件 1、准备....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 53,730
精华内容 21,492
关键字:

如何用pandas读取数据