5.pandas:数据读写

5.5 从xml读取数据

import pandas as pd
#lxml库:
#大文件处理方面性能优异
#与pandas整合起来,从XML文件中获取所需数据并将其转换为DataFrame对象
#详见:http://lxml.de/index.html
from lxml import objectify
xml = objectify.parse('books.xml')
#根结构中的每个结点和原始的XML文件中的标签相对应
#结点的名称和标签名称相同
#要选择结点只需依次指定几个标签,各标签之间用点号分隔
#标签中的次序反应的正是树中结点的层级顺序
root = xml.getroot()
root.Book.Author
#'Ross, Mark'
root.Book.PublishDate
#'2014-22-01'
#使用getchildren()函数获取某个元素的所有子结点
root.getchildren()
#用tag属性,获取到子节点tag属性的名称
[child.tag for child in root.Book.getchildren()]
#用text属性,获取到位于标签之间的内容
[child.text for child in root.Book.getchildren()]
#树结构->DataFrame对象函数
def etree2d(root):
    column_names = []
    for i in range(0,len(root.getchildren()[0].getchildren())):
        column_names.append(root.getchildren()[0].getchildren()[i].tag)
        xml:frame = pd.DataFrame(columns=columns_names)
    for j in range(0,len(root.getchildren())):
        obj = root.getchildren()[j].getchildren()
        texts = []
        for k in range(0,len(columns_names)):
            texts.append(obj[k].text)
        row = dict(zip(columns_names,texts))
        row_s = pd.Series(row)
        row_s.name = j
        xml:frame = xml:frame.append(row_s)
    return xml:frame

5.6 读写Microsoft Excel文件

1. read_excel():
整合了xlrd模块,能够读取Excel 2003(.xls)和Excel 2007(.xlsx)两种类型的文件
import pandas as pd
pd.read_excel('data.xls')
pd.read_excel('data.xls','Sheet2')
#等价于pd.read_excel('data.xls',1)
2. to_excel():
frame=pd.DataFrame(np.random.random((4,4)),index=['exp1','exp2','exp3','exp4'],columns=['Jan2015','Feb2015','Mar2015','Apr2015'])
frame.to_excel('data2.xlsx')

5.7 JSON数据

JSON(JavaScript Object Notation, JavaScript对象标记): Web传输标准数据格式之一

P105

你可能感兴趣的:(Python)