zoukankan      html  css  js  c++  java
  • pandas——read_csv

    pandas.read_csv

    1.filepath_or_buffer:设置需要访问的文件的有效路径.

    2.sep:str, default ','.

    指定读取文件的分隔符.支持自定义分隔符.

    3.delimiter:str, default None

    定界符.备选分隔符(如果指定该参数,则sep参数失效)

    4.header:str, default None

    指定作为整个数据集列名的行.如果数据集中没有列名,则需要设置header=None.对有表头的数据识别第一行作为header.

    5.names :array-like, default None

    在headers=None的前提下,names参数可以为无表头(列名)的数据设置一个列名

    6.index_col:int or sequence or False, default None

    指定数据集中的某1列作为索引(index_col = 1/2).

    7.usecols:array-like, default None

    指定只读取文件中的某一列数据.例如:只读取前四列,usecols = [0,1,2,3])

    8.squeeze:boolean, default False

    如果文件值包含一列,则返回一个Series.

    pandas.read_csv

    9.dtype : Type name or dict of column -> type, default None

    每列数据的数据类型。例如 {‘a’: np.float64, ‘b’: np.int32}

    10.skiprows : list-like or integer, default None

    需要忽略的行数(从文件开始处算起),或需要跳过的行号列表(从0开始)。

    11.nrows : int, default None

    需要读取的行数(从文件头开始算起)。

    12.na_values: scalar, str, list-like, or dict, default None

    一组用于替换NA/NaN的值。如果传参,需要制定特定列的空值。默认'N/A','NA','NULL', 'NaN', 'nan'.

    13.keep_default_na : bool, default True

    如果指定na_values参数,并且keep_default_na =False,那么默认的NaN将被覆盖,否则添加。

    14.na_filter : boolean, default True

    是否检查丢失值(空字符串或者是空值)。对于大文件来说数据集中没有空值,设定为False可以提升读取速度。

    13.skip_blank_lines : boolean, default True
    如果为False,则记为NaN;否跳过。

    14.parse_dates : boolean or list of ints or names or list of lists or dict, default False

    parse_dates参数:
    将csv中的时间字符串转换成日期格式
    
    TestTime.csv文件:
    "name","time","date"
    'Bob',21:33:30,2019-10-10
    'Jerry',21:30:15,2019-10-10
    'Tom',21:25:30,2019-10-10
    'Vince',21:20:10,2019-10-10
    'Hank',21:40:15,2019-10-10
    
    
    import pandas as pd
    (1)、
    df=pd.read_csv('./TestTime.csv',parse_dates=[['time','date']])
    print(df)
    """
    指定parse_dates = [ ['time', 'date'] ],即将[ ['time', 'date'] ]两列的字符串先合并后解析方可。合并后的新列会以下划线'_'连接原列名命名
    本例中解析后的命名为:time_date,解析得到的日期格式列会作为DataFrame的第一列。
    在index_col指定表格中的第几列作为Index时需要小心。如本例中,指定参数index_col=0,
    则此时会以新生成的time_date列而不是name作为Index。因此保险的方法是指定列名,如index_col = 'name'
    结果:
                time_date     name
    0 2019-10-10 21:33:30    'Bob'
    1 2019-10-10 21:30:15  'Jerry'
    2 2019-10-10 21:25:30    'Tom'
    3 2019-10-10 21:20:10  'Vince'
    4 2019-10-10 21:40:15   'Hank'
    """
    
    (2)、
    df=pd.read_csv('./TestTime.csv',parse_dates=['time','date'])
    print(df)
    """
    如果写成了parse_dates=['time', 'date'] ,pd.read_csv()会分别对'time', 'date'进行字符串转日期,此外还会造成一个小小的麻烦。
    由于本例中的Time时间列格式为'HH:MM:SS',parse_dates默认调用dateutil.parser.parse解析为Datetime格式,在解析time这一列时,会自作主张在前面加上一个当前日期。
    结果:
          name                time         date
    0    'Bob' 2019-10-17 21:33:30   2019-10-10
    1  'Jerry' 2019-10-17 21:30:15   2019-10-10
    2    'Tom' 2019-10-17 21:25:30   2019-10-10
    3  'Vince' 2019-10-17 21:20:10   2019-10-10
    4   'Hank' 2019-10-17 21:40:15   2019-10-10
    """
    
    
    【注】:read_csv()方法指定parse_dates会使得读取csv文件的时间大大增加
    
    
    (3)、
    df=pd.read_csv('./TestTime.csv',parse_dates=[['time','date']],infer_datetime_format=True)
    print(df)
    """
    infer_datetime_format=True可显著减少read_csv命令日期解析时间
    """
    
    
    (4)、
    df=pd.read_csv('./TestTime.csv',parse_dates=[['time','date']],infer_datetime_format=True,keep_date_col=True)
    print(df)
    """
    keep_date_col=True/False参数则是用来指定解析为日期格式的列是否保留下来,True保留,False不保留
    本例中=True即原解析的列time和date被保留下来
    结果:
                time_date     name      time        date
    0 2019-10-10 21:33:30    'Bob'  21:33:30  2019-10-10
    1 2019-10-10 21:30:15  'Jerry'  21:30:15  2019-10-10
    2 2019-10-10 21:25:30    'Tom'  21:25:30  2019-10-10
    3 2019-10-10 21:20:10  'Vince'  21:20:10  2019-10-10
    4 2019-10-10 21:40:15   'Hank'  21:40:15  2019-10-10
    """
    boolean. True -> 解析索引
    [1, 2, 3] -> 解析1,2,3列的值作为独立的日期列[[1, 2]] -> 合并1,2列作为一个日期列使用
    {'time': [1, 2]} -> 将1,2列合并并给合并后的列起名为"time"

    15.encoding : str, default None
    指定字符集类型,通常指定为'utf-8',支持切换其它格式.

    # 一次性读取文件夹中所有CSV数据
    import os
    import pandas as pd
    frame = []
    path = (".../COVID-19-master/csse_covid_19_data/csse_covid_19_daily_reports")
    for file in os.listdir(path):
        filepath = path + "/" + file
        # print(filepath)
        frame.append(pd.read_csv(filepath,usecols = 
        ["Country/Region","Province/State",
        "Last Update","Confirmed"]))
    df = pd.concat(frame,ignore_index = True)
    print(df.head(10)
    你的时间用在哪里决定你成为一个什么样的人。
  • 相关阅读:
    引入RabbitMQ后,如何保证全链路数据100%不丢
    使用logstash迁移elasticsearch
    内网代理转发工具
    MSSQL存储过程命令执行
    win10 家庭版升级专业版密钥
    clash TUN模式
    windows实战常用命令
    webshell之jsp免杀
    tmux的使用方法
    钓鱼邮件从入门到放弃
  • 原文地址:https://www.cnblogs.com/yc3110/p/14584075.html
Copyright © 2011-2022 走看看