<SYSTEM_TASK:>
Given the following text description, write Python code to implement the functionality described below step by step
<END_TASK>
<USER_TASK:>
Description:
 Pandas 数据读写
API
读取 | 写入 
--- | ---
read_csv | to_csv
read_excel | to_excel
read_hdf | to_hdf
read_sql | to_sql
read_json | to_json
read_html | to_html
read_stata | to_stata
read_clipboard | to_clipboard
read_pickle | to_pickle
CVS 文件读写
csv 文件内容
white,read,blue,green,animal
1,5,2,3,cat
2,7,8,5,dog
3,3,6,7,horse
2,2,8,3,duck
4,4,2,1,mouse
Step1:  读取没有head的数据
1,5,2,3,cat
2,7,8,5,dog
3,3,6,7,horse
2,2,8,3,duck
4,4,2,1,mouse
Step2:  可以指定header
Step3:  创建一个具有等级结构的DataFrame对象，可以添加index_col选项,数据文件格式
colors,status,item1,item2,item3
black,up,3,4,6
black,down,2,6,7
white,up,5,5,5
white,down,3,3,2
red,up,2,2,2
red,down,1,1,4
Step4:  Regexp 解析TXT文件
使用正则表达式指定sep,来达到解析数据文件的目的。
正则元素 | 功能
--- | ---
. | 换行符以外所有元素
\d | 数字
\D | 非数字
\s | 空白字符
\S | 非空白字符
\n | 换行符
\t | 制表符
\uxxxx | 使用十六进制表示ideaUnicode字符 
数据文件随机以制表符和空格分隔
white  red  blue  green
1  4 3   2
2 4    6 7
Step5:  读取有字母分隔的数据
000end123aaa122
001end125aaa144
Step6:  读取文本文件跳过一些不必要的行
```
log file
this file has been generate by automatic system
white,red,blue,green,animal
12-feb-2015
Step7:  从TXT文件中读取部分数据
只想读文件的一部分，可明确指定解析的行号，这时候用到nrows和skiprows选项，从指定的行开始和从起始行往后读多少行（norow=i)
Step8:  实例 ：
对于一列数据，每隔两行取一个累加起来，最后把和插入到列的Series对象中
Step9:  写入文件
to_csv(filenmae)
to_csv(filename,index=False,header=False)
to_csv(filename,na_rep='NaN')
HTML文件读写
写入HTML文件
Step10:  创建复杂的DataFrame
Step11:  HTML读表格
Step12:  读写xml文件
使用的第三方的库 lxml
Step13:  读写Excel文件
Step14:  JSON数据
Step15:  HDF5数据
HDF文件（hierarchical data from)等级数据格式，用二进制文件存储数据。
Step16:  pickle数据
Step17:  数据库连接
以sqlite3为例介绍
<ASSISTANT_TASK:>
Python Code:
import numpy as np
import pandas as pd
csvframe=pd.read_csv('myCSV_01.csv')
csvframe
# 也可以通过read_table来读写数据
pd.read_table('myCSV_01.csv',sep=',')
Explanation: Pandas 数据读写
API
读取 | 写入 
--- | ---
read_csv | to_csv
read_excel | to_excel
read_hdf | to_hdf
read_sql | to_sql
read_json | to_json
read_html | to_html
read_stata | to_stata
read_clipboard | to_clipboard
read_pickle | to_pickle
CVS 文件读写
csv 文件内容
white,read,blue,green,animal
1,5,2,3,cat
2,7,8,5,dog
3,3,6,7,horse
2,2,8,3,duck
4,4,2,1,mouse
End of explanation
pd.read_csv('myCSV_02.csv',header=None)
Explanation: 读取没有head的数据
1,5,2,3,cat
2,7,8,5,dog
3,3,6,7,horse
2,2,8,3,duck
4,4,2,1,mouse
End of explanation
pd.read_csv('myCSV_02.csv',names=['white','red','blue','green','animal'])
Explanation: 可以指定header
End of explanation
pd.read_csv('myCSV_03.csv',index_col=['colors','status'])
Explanation: 创建一个具有等级结构的DataFrame对象，可以添加index_col选项,数据文件格式
colors,status,item1,item2,item3
black,up,3,4,6
black,down,2,6,7
white,up,5,5,5
white,down,3,3,2
red,up,2,2,2
red,down,1,1,4
End of explanation
pd.read_csv('myCSV_04.csv',sep='\s+')
Explanation: Regexp 解析TXT文件
使用正则表达式指定sep,来达到解析数据文件的目的。
正则元素 | 功能
--- | ---
. | 换行符以外所有元素
\d | 数字
\D | 非数字
\s | 空白字符
\S | 非空白字符
\n | 换行符
\t | 制表符
\uxxxx | 使用十六进制表示ideaUnicode字符 
数据文件随机以制表符和空格分隔
white  red  blue  green
1  4 3   2
2 4    6 7
End of explanation
pd.read_csv('myCSV_05.csv',sep='\D*',header=None,engine='python')
Explanation: 读取有字母分隔的数据
000end123aaa122
001end125aaa144
End of explanation
pd.read_table('myCSV_06.csv',sep=',',skiprows=[0,1,3,6])
Explanation: 读取文本文件跳过一些不必要的行
```
log file
this file has been generate by automatic system
white,red,blue,green,animal
12-feb-2015:counting of animals inside the house
1,3,5,2,cat
2,4,8,5,dog
13-feb-2015:counting of animals inside the house
3,3,6,7,horse
2,2,8,3,duck
```
End of explanation
pd.read_csv('myCSV_02.csv',skiprows=[2],nrows=3,header=None)
Explanation: 从TXT文件中读取部分数据
只想读文件的一部分，可明确指定解析的行号，这时候用到nrows和skiprows选项，从指定的行开始和从起始行往后读多少行（norow=i)
End of explanation
out = pd.Series()
i=0
pieces = pd.read_csv('myCSV_01.csv',chunksize=3)
for piece in pieces:
    print piece
    out.set_value(i,piece['white'].sum())
    i += 1
out
Explanation: 实例 ：
对于一列数据，每隔两行取一个累加起来，最后把和插入到列的Series对象中
End of explanation
frame = pd.DataFrame(np.arange(4).reshape((2,2)))
print frame.to_html()
Explanation: 写入文件
to_csv(filenmae)
to_csv(filename,index=False,header=False)
to_csv(filename,na_rep='NaN')
HTML文件读写
写入HTML文件
End of explanation
frame = pd.DataFrame(np.random.random((4,4)),
                    index=['white','black','red','blue'],
                    columns=['up','down','left','right'])
frame
s = ['<HTML>']
s.append('<HEAD><TITLE>MY DATAFRAME</TITLE></HEAD>')
s.append('<BODY>')
s.append(frame.to_html())
s.append('</BODY></HTML>')
html=''.join(s)
with open('myFrame.html','w') as html_file:
    html_file.write(html)
Explanation: 创建复杂的DataFrame
End of explanation
web_frames = pd.read_html('myFrame.html')
web_frames[0]
# 以网址作为参数
ranking = pd.read_html('http://www.meccanismocomplesso.org/en/meccanismo-complesso-sito-2/classifica-punteggio/')
ranking[0]
Explanation: HTML读表格
End of explanation
from lxml import objectify
xml = objectify.parse('books.xml')
xml
root =xml.getroot()
root.Book.Author
root.Book.PublishDate
root.getchildren()
[child.tag for child in root.Book.getchildren()]
[child.text for child in root.Book.getchildren()]
def etree2df(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=column_names)
    for j in range(0,len(root.getchildren())):
        obj = root.getchildren()[j].getchildren()
        texts = []
        for k in range(0,len(column_names)):
            texts.append(obj[k].text)
        row = dict(zip(column_names,texts))
        row_s=pd.Series(row)
        row_s.name=j
        xml_frame = xml_frame.append(row_s)
    return xml_frame
etree2df(root)
Explanation: 读写xml文件
使用的第三方的库 lxml
End of explanation
pd.read_excel('data.xlsx')
pd.read_excel('data.xlsx','Sheet2')
frame = pd.DataFrame(np.random.random((4,4)),
                    index=['exp1','exp2','exp3','exp4'],
                    columns=['Jan2015','Feb2015','Mar2015','Apr2015'])
frame
frame.to_excel('data2.xlsx')
Explanation: 读写Excel文件
End of explanation
frame = pd.DataFrame(np.arange(16).reshape((4,4)),
                    index=['white','black','red','blue'],
                    columns=['up','down','right','left'])
frame.to_json('frame.json')
# 读取json
pd.read_json('frame.json')
Explanation: JSON数据
End of explanation
from pandas.io.pytables import HDFStore
store = HDFStore('mydata.h5')
store['obj1']=frame
store['obj1']
Explanation: HDF5数据
HDF文件（hierarchical data from)等级数据格式，用二进制文件存储数据。
End of explanation
frame.to_pickle('frame.pkl')
pd.read_pickle('frame.pkl')
Explanation: pickle数据
End of explanation
frame=pd.DataFrame(np.arange(20).reshape((4,5)),
                  columns=['white','red','blue','black','green'])
frame
from sqlalchemy import create_engine
enegine=create_engine('sqlite:///foo.db')
frame.to_sql('colors',enegine)
pd.read_sql('colors',enegine)
Explanation: 数据库连接
以sqlite3为例介绍
End of explanation
<END_TASK>