zoukankan      html  css  js  c++  java
  • pandas:DataFrname(三)

    pandas:从文件读取

    读取文件;从文件名。url,文件对象中加载数据
    read_csv 默认分隔符为逗号
    read_table  默认分隔符为	
    
    读取文件函数主要参数
    sep 指定分隔符,可用正则表达式
    header=None  指定文件无列名
    names  指定列名
    index_col  指定某列作为索引
    na_values  指定某些字符串表示缺失值
    parse_dates  指定某些列是否被解析为日期,布尔值或列表
    
    df = pd.read_csv('filename.csv',sep=',',header=None,names=['列名1','列名2',...],parse_dates=
         ...: True,index_col='id',na_values=['none','None','nan','NaN','null'])

    pandas:写入到文件

    to_csv

    写入文件函数的主要参数

     1 sep
     2 na_rep  指定缺失值转换的字符串,默认为空字符串
     3 header=False 不输出列名一行
     4 index=False  不输输行索引一列
     5 cols  指定输出的列,传入列表
     6 
     7 其他文件类型:json  XML HTML 数据库
     8 pandas转换为二进制文件格式(pickle)
     9 save
    10 load

    pandas:时间对象处理

    时间序列类型:
    时间戳:特定时刻
     固定时期:如2010年1月
    时间间隔:起始时间-结束时间
    python标准库:datetime
    date time datetime timedalta
    strftime()
    strptime()
    
    第三方包
    pip install python-dateutil
    dateutil.parser.parse()
    成组处理日期:pandas
    pd.to_datetime(['起始时间','结束时间'])
    
    In [163]: import dateutil
    
    In [164]: dateutil.parser.parse('2010-01-01')
    Out[164]: datetime.datetime(2010, 1, 1, 0, 0)
    
    In [165]: dateutil.parser.parse('2010/01/01')
    Out[165]: datetime.datetime(2010, 1, 1, 0, 0)
    
    In [166]: dateutil.parser.parse('2010 JAN 1')
    Out[166]: datetime.datetime(2010, 1, 1, 0, 0)
    
    In [167]: dateutil.parser.parse('2010/2/3 9:19:10')
    Out[167]: datetime.datetime(2010, 2, 3, 9, 19, 10)
    
    In [168]: pd.to_datetime(['2018-01-01','2018-07-08'])
    Out[168]: DatetimeIndex(['2018-01-01', '2018-07-08'], dtype='datetime64[ns]', freq=None)
    
    In [169]: pd.date_range('2018-01-01','2018-07-08')
    Out[169]: 
    DatetimeIndex(['2018-01-01', '2018-01-02', '2018-01-03', '2018-01-04',
                   '2018-01-05', '2018-01-06', '2018-01-07', '2018-01-08',
                   '2018-01-09', '2018-01-10',
                   ...
                   '2018-06-29', '2018-06-30', '2018-07-01', '2018-07-02',
                   '2018-07-03', '2018-07-04', '2018-07-05', '2018-07-06',
                   '2018-07-07', '2018-07-08'],
                  dtype='datetime64[ns]', length=189, freq='D')

    pandas:时间对象处理

    产生时间对象数组:date_range
    start 开始时间
    end  结束时间
    periods  时间长度(如果不知道结束时间,可以使用periods知道时间长度,多少天)
    freq  时间频率,默认为D,可选H(our),W(eek),B(usiness),S(emi-)M(onth),(min)T(es),
    S(econd),A(year)...
    
     pd.date_range('2018-01-01','2018-07-08',freq='W-MON')
    Out[175]: 
    DatetimeIndex(['2018-01-01', '2018-01-08', '2018-01-15', '2018-01-22',
                   '2018-01-29', '2018-02-05', '2018-02-12', '2018-02-19',
                   '2018-02-26', '2018-03-05', '2018-03-12', '2018-03-19',
                   '2018-03-26', '2018-04-02', '2018-04-09', '2018-04-16',
                   '2018-04-23', '2018-04-30', '2018-05-07', '2018-05-14',
                   '2018-05-21', '2018-05-28', '2018-06-04', '2018-06-11',
                   '2018-06-18', '2018-06-25', '2018-07-02'],
                  dtype='datetime64[ns]', freq='W-MON')

    pandas:时间序列

    时间序列就是以时间对象为索引的Series或DataFrame

    datetime对象作为索引时是存储在DatatimeIndex对象中

    时间序列特殊功能

    传入'年'或者'年月'作为切片方式

    传入日期范围作为切片方式

    In [176]: df = pd.read_csv('601318.csv',index_col='date',parse_dates=['date'])
    In [178]: type(df.index[0])
    Out[178]: pandas._libs.tslibs.timestamps.Timestamp
    
    In [179]: df['2007-03-01':'2007-03-05']
    Out[179]: 
                id    open   close    high     low      volume    code
    date                                                              
    2007-03-01   0  22.074  20.657  22.503  20.220  1977633.51  601318
    2007-03-02   1  20.750  20.489  20.944  20.256   425048.32  601318
    2007-03-05   2  20.300  19.593  20.384  19.218   419196.74  601318
  • 相关阅读:
    TypeScript
    monorepo
    Sass和Less
    浏览器的多进程
    React router的Route应用
    CSS3 之 Media(媒体查询器)
    迷失了自己~
    实现跨域的项目实践
    Python开发入门14天集训营-第二章
    Python开发入门14天集训营-第一章
  • 原文地址:https://www.cnblogs.com/YingLai/p/9302739.html
Copyright © 2011-2022 走看看