zoukankan      html  css  js  c++  java
  • Excel文件处理之pandas

    pandas可以用来处理多种存储类型的数据,比如excel、csv、html、sql......查看pandas.read_XX方法可以看出。本文主要总结对excel的处理。pandas依赖处理Excel的xlrd等模块,这些模块安装即可,不需要import。
     
    1读取
     
    1.1多个sheet
    import  pandas as pd
    a=pd.read_excel("3.xlsx",sheet_name=[1,2]) #获取第2个和第3个sheet
    c=a.values #获取上述sheets所有数据,注意多个sheets时不能用head()方法
     
    1.2单个sheet
    import  pandas as pd
    a=pd.read_excel("3.xlsx",sheet_name="Top10") #或者写成sheet_name=1,1表示index
    b=a.head() #默认读取上述sheet前5行的数据
    c=a.values #获取上述sheet所有数据,单个sheet也能用values方法
     
     
    1.3获取行列值、单元格值(所有索引都不包含表头)
    import  pandas as pd
    a=pd.read_excel("3.xlsx",sheet_name=1)
     
    #以下都秉承格式 a.ix[行,列] 
    cellvalue=a.ix[0,0] #表示单元格 第1行第1列的值
    cellvalue=a.ix[0,'name']  #表示单元格 第1行列'name'的值
     
    rowvalues=a.ix[0] #表示第1行的所有值,注意是表头下面的第1行!a.ix[0] 等价 a.ix[0,:]
    rowsvalues=a.ix[[0,1,3]]#表示第1、2、4行的所有值,注意嵌套列表!a.ix[[0,1,3]] 等价 a.ix[[0,1,3],:]
     
    colvalues=a.ix[:,0] #表示第1列的所有值
    colsvalues=a.ix[:,['name','score']] #表示列'name'和'score'的所有值
     
    rangevalues=a.ix[[0,1,4],['name','score']] #表示 第1、2、5行~列'name'列'score'  区域的所有值
     
    1.4 a.ix[0]和a.ix[0].values的返回格式不同
    b=a.ix[1].values
    print type(b)  
    输出:《type 'numpy.ndarray'》
    print b 
    输出:[u'a2' u'N1' 99]
     
    c=a.ix[1]
    print type(c) 
    输出:《class 'pandas.core.series.Series'》 
    print c 
    输出:
    name    a2
    grade    N1
    score    99
    Name: 1, dtype: object
     
     
     
    2写存
     
    import  pandas as pd
    a=pd.read_excel("3.xlsx",sheet_name=1) #读取第2个sheet
    a.ix[1,1]='123456' #赋值
    a.to_excel('3-2.xlsx', sheet_name='num', index=False, header=True) #保存,sheet命名
     
    上述代码有2大弊端:
    原sheet的range(3,2)区域内必须有值,否则报错:cannot set by positional indexing with enlargement;
    保存时仅生成被处理sheet,不需处理的sheet不会复制过来。excel同名会覆盖原文件,极易造成sheet丢失。
     
    如此看来,不如openpyxl库好用。
     
     
     
    3相对路径

    train = pd.read_csv("data/train.csv")
    注意不要写成("/data/train.csv")或者其它。

     
     
  • 相关阅读:
    两个序列最大子集公共和问题
    两个随机变量相关系数
    多项分布的定义
    算法分析结课总结回溯算法
    潜语义分析LSA相比向量空间模型VSM改变了什么
    类对象的声明和类对象指针的申请的种种
    C#中 常用的方法
    转:GridView鼠标移动行变色 (http://www.cnblogs.com/lovenets/articles/808071.html)[同ceng]
    WinForm 获取指定行列的Value
    华丽丽的分隔符
  • 原文地址:https://www.cnblogs.com/myshuzhimei/p/11757173.html
Copyright © 2011-2022 走看看