美文网首页Tensorflow实践
Pandas操作csv文件方法整理

Pandas操作csv文件方法整理

作者: 一块自由的砖 | 来源:发表于2020-01-02 14:47 被阅读0次

    介绍

    Pandas 是 python 的一个数据分析包,可以方便地从本地读样本数据,提供了很多读取的方式。

    安装

    推荐使用anaconda,集成了平常比较常用的python库,里面就有 numpy、pandas 等,使用起来非常方便。

    官方文档

    https://pandas.pydata.org/pandas-docs/stable/index.html

    CSV文件

    csv文件就是以固定分隔符,比如逗号为分隔符,分割数据的文本文件,文件扩展名为csv。

    使用

    文件是上证指数,获取方式是网易的接口(感谢网易):
    http://quotes.money.163.com/service/chddata.html?code=0000001&start=20190101&end=20191231&fields=TCLOSE;HIGH;LOW;TOPEN;LCLOSE;CHG;PCHG;VOTURNOVER

    打开文件

    read_csv()方法,读取整个.csv文件;

    #数据预处理以及绘制图形需要的模块
    import numpy as np
    import pandas as pd
    
    #从csv读取数据,这里要指定字符集,不然会报错,默认是utf8的,我这里从网易回来时gb的
    dataset = pd.read_csv('./000001.csv', encoding = 'gb18030')
    print(dataset)
    #在打开文件的时候,不显示列名行
    dataset = pd.read_csv('./000001.csv', encoding = 'gb18030',header=1)
    print(dataset)
    #在打开文件的时候不显示左侧的编号列
    dataset = pd.read_csv('./000001.csv', encoding = 'gb18030',index_col=0)
    print(dataset)
    #在打开文件的时候只取指定的列
    dataset = pd.read_csv('./000001.csv', encoding = 'gb18030',usecols=[0,2])
    print(dataset)
    #基于索引列来获取行(和上面输出一样,有时候索引要不是数字,比如时间,用这个比较方便)
    print('第几个数据')
    print(dataset.iloc[0])
    #该方法也可以类似于python中列表的操作,使用切片,例如取第 3 - 5 行的数据
    print('第3 - 5 行数据')
    print(dataset.iloc[3:5])
    #可以传进去一个列表,例如打印 2,3,5 行的数据
    print('打印 2,3,5 行的数据')
    print(dataset.iloc[[2,3,5]])
    

    输出:


    image.png

    其他常用参数:
    filepath_or_buffer : str,pathlib。str, pathlib.Path, py._path.local.LocalPath or any object with a read() method (such as a file handle or StringIO)
    可以是URL,可用URL类型包括:http, ftp, s3和文件。对于多文件正在准备中
    本地文件读取实例:://localhost/path/to/table.csv
    sep : str, default ‘,’
    指定分隔符。如果不指定参数,则会尝试使用逗号分隔。分隔符长于一个字符并且不是‘\s+’,将使用python的语法分析器。并且忽略数据中的逗号。正则表达式例子:’\r\t’
    delimiter : str, default None
    定界符,备选分隔符(如果指定该参数,则sep参数失效)
    delim_whitespace : boolean, default False.
    指定空格(例如’ ‘或者’ ‘)是否作为分隔符使用,等效于设定sep=’\s+’。如果这个参数设定为Ture那么delimiter 参数失效。
    在新版本0.18.1支持
    header : int or list of ints, default ‘infer’
    指定行数用来作为列名,数据开始行数。如果文件中没有列名,则默认为0,否则设置为None。如果明确设定header=0 就会替换掉原来存在列名。header参数可以是一个list例如:[0,1,3],这个list表示将文件中的这些行作为列标题(意味着每一列有多个标题),介于中间的行将被忽略掉(例如本例中的2;本例中的数据1,2,4行将被作为多级标题出现,第3行数据将被丢弃,dataframe的数据从第5行开始。)。
    注意:如果skip_blank_lines=True 那么header参数忽略注释行和空行,所以header=0表示第一行数据而不是文件的第一行。
    names : array-like, default None
    用于结果的列名列表,如果数据文件中没有列标题行,就需要执行header=None。默认列表中不能出现重复,除非设定参数mangle_dupe_cols=True。
    index_col : int or sequence or False, default None
    用作行索引的列编号或者列名,如果给定一个序列则有多个行索引。
    如果文件不规则,行尾有分隔符,则可以设定index_col=False 保证pandas用第一列作为行索引。
    usecols : array-like, default None
    返回一个数据子集,该列表中的值必须可以对应到文件中的位置(数字可以对应到指定的列)或者是字符传为文件中的列名。例如:usecols有效参数可能是 [0,1,2]或者是 [‘foo’, ‘bar’, ‘baz’]。使用这个参数可以加快加载速度并降低内存消耗。
    skiprows : list-like or integer, default None
    需要忽略的行数(从文件开始处算起),或需要跳过的行号列表(从0开始)。
    skipfooter : int, default 0
    从文件尾部开始忽略。 (c引擎不支持)
    skip_footer : int, default 0
    不推荐使用:建议使用skipfooter ,功能一样。
    nrows : int, default None
    需要读取的行数(从文件头开始算起)。
    其他的参数还很多,又特殊需要可以去官方手册查阅

    获取数据

    好多时候都需要数据都加载,在执行的时候,动态的操作数据。

    获取行数据

    print('打印列名')
    print(dataset.columns)
    #使用 shape 方法,打印数据的维度,一共有几行几列
    print('打印数据的维度')
    print(dataset.shape)
    #使用 loc[ ] 方法,打印第几个数据,参数是数据的行号,例如取第 1 行数据
    print('第几个数据')
    print(dataset.loc[0])
    #该方法也可以类似于python中列表的操作,使用切片,例如取第 3 - 5 行的数据
    print('第3 - 5 行数据')
    print(dataset.loc[3:5])
    #可以传进去一个列表,例如打印 2,3,5 行的数据
    print('打印 2,3,5 行的数据')
    print(dataset.loc[[2,3,5]])
    
    image.png

    获取列数据

    #基于列名来获取列
    print('第日期列数据')
    print(dataset['日期'])
    #该方法也可以类似于python中列表的操作,使用切片,例如用列名的数据
    print('第日期,股票代码,名称列数据')
    print(dataset[['日期','股票代码','名称']])
    

    组合行列的选取

    # 全部行的,指定列
    print(dataset.loc[:, ['日期', '股票代码','名称']])
    # 索引选取行
    print(dataset.iloc[5:10, 0:4])
    # 列名选取行
    print(dataset.loc[5:10, ['日期', '股票代码','名称']])
    

    输出:


    image.png

    全部代码

    到github查看https://github.com/horacepei/tensorflow_study

    相关文章

      网友评论

        本文标题:Pandas操作csv文件方法整理

        本文链接:https://www.haomeiwen.com/subject/jrxooctx.html