zoukankan      html  css  js  c++  java
  • pandas之数据IO笔记

    pandas在进行数据存储与输出时会做一些相应的操作

    1.*索引:将一个列或多个列读取出来构成DataFrame,其中涉及是否从文件中读取索引以及列名

    2 *类型推断和数据转换:包括用户自定义的转换以及缺失值标记

    3 *日期解析

    4*迭代:针对大文件进行逐块迭代。这个是Pandas和Python原生的csv库的最大区别

    5 *不规整数据问题:跳过一些行,或注释等等
     
     1 import pandas as pd
     2 import numpy as np
     3 
     4 pd.read_csv('ch04/ex1.csv')   # 它输出的是DataFrame
     5 pd.read_table('ch04/ex1.csv',sep=',')  # 它的效果和上一行一样
     6 
     7 pd.read_csv('ch04/ex2.csv',header=None,names=['a','b','c','d','msg'])
     8 #  它为读取的文件添加列索引
     9 
    10 pd.read_csv('ch04/ex2.csv',header=None,
    11                    names=['a','b','c','d','msg'],index_col=['msg','b'])
    12 #  为文件添加列索引后,又将'msg','b'两列变为行索引
    13 
    14 pd.read_table('ch04/ex3.csv',sep='s+')
    15 #  文件中的分隔符用到正则表达式sep='s+'
    16 
    17 pd.read_csv('ch04/ex5.csv',
    18                     na_values={'message':['NA','NULL','foo'],'something':['two']})
    19 #  读出的文件没有值的默认为NaN值,
    20 #  na_values通过字典形式表示message与something中需要变为NaN值的一些位置
    21 
    22 pd.read_csv('ch04/ex6.csv',nrows=10)
    23 #  表示只读取10行
    24 
    25 #  如果要取出每个索引出现的次数,可以利用chunksize
    26 tr = pd.read_csv('ch04/ex6.csv',chunksize=1000)
    27 #  先取出1000行
    28 #  它返回<pandas.io.parsers.TextFileReader at 0x1b116b02780>支持迭代
    29 result = pd.Series([])
    30 for chunk in tr:
    31     result = result.add(chunk['key'].value_counts(),fill_value=0)
    32 #  add方法会为索引对应的数据不存在添加默认值,可以采用fill_value=0填充默认值
    33 
    34 result = result.sort_values(ascending=False)
    35 result[:10]  # 取出前十大的数

    往磁盘读入数据

     1 import pandas as pd
     2 import numpy as np
     3 
     4 df = pd.read_csv('ch04/ex5.csv')
     5 df.to_csv('ch04/ex5_out.csv',index=False)  
     6 # 如果没有index=False,读取的文件与源文件有差异,给源文件加了索引
     7 # index=False指定不写索引值
     8 
     9 df.to_csv('ch04/ex5_out.csv',index=False,
    10               header=None,columns=['b','c','message'],sep='|')
    11 # header=None,不写列标签,只写'b','c','message'三列,每个数字或字符串用'|'分隔开
  • 相关阅读:
    怎样编写YARN应用程序
    Oracle整形转字符串to_char()
    js 前加分号和感叹号的含义
    Android 多屏适配解决方式
    nginx负载均衡基于ip_hash的session粘帖
    mysql锁SELECT FOR UPDATE【转】
    redis主从复制
    mysql 优化实例之索引创建
    mysql sql优化实例
    MySQL 慢查询日志分析及可视化结果
  • 原文地址:https://www.cnblogs.com/yang901112/p/11425934.html
Copyright © 2011-2022 走看看