第七章-基于python的数据导入与导出


第七章-基于python的数据导入与导出

Pandas

pandas是python的一个开源库,提供了高性能且易于使用的数据结构及数据分析工具

pandas中文文档

pandas官方文档

Series

处理一维数据

1
2
3
4
5
6
7
8
9
10
from pandas import Series
import pandas as pd
s = Series([5,2,8,4])
>>>s
>>>
0 5
1 2
2 8
3 4
dtype: int64

index和values属性

通过Series的index和values属性获取元素值和index值

1
2
3
4
s.index
>>>RangeIndex(start=0, stop=3, step=1)
s.values
>>>array([5,2,8,4])

使用自己提供的index

1
2
3
4
5
6
7
8
9
s2 = Series([2, 5, 8, 7], index = ['a','c', 'b', 'd'])
>>>s2
>>>a 2
>>>c 5
>>>b 8
>>>d 7
>>>dtype:int64
>>>s2.index
>>>Index(['a','c', 'b', 'd'],dtype='object')

访问元素

访问单个
1
s2['a'] // 2
访问多个

返回新的Series对象

1
2
3
4
s2[['a', 'b', 'd']] 
a 2
b 8
d 7

Series和实数做算数运算

1
2
3
4
5
6
7
s = Series([5,2,8,4])
>>>s*2
0 10
1 4
2 16
3 8
dtype: int64

Series和实数做逻辑运算

1
2
3
4
5
6
7
s = Series([5,2,8,4])
>>>s>5
0 False
1 False
2 True
3 False
dtype: bool

bool序列来过滤Series对象

1
2
3
s = Series([5,2,8,4])
>>>s[s>5]
>>>2 8

map

除了可以将Series看成类似数组的结构,也可以看成定长且有序的map

1
2
3
s3 = Series({'a':1, 'c':3, 'b':2})
>>>'a' in s3
>>> True

修改值和index

1
2
3
s = Series([5,2,8,4])
s[0]=9
s.index = ['a', 'b','c', 'd']

DataFrame

文本文件的导入与导出

导入CSV文件

CSV文件:一种简单的文本,广泛用于存储表格格式的行列数据

pandas提供read_csv(),read_table()两种方式导入csv文件,返回结果为DataFrame类型

read_csv()

默认分隔符为’,’,且只能读入这种分隔符的csv文件

1
2
!type mycsv.csv
df = pd.read_csv('mycsv.csv')

read_table()

默认分隔符为’\t’,可以读入其它分隔符CSV文件

1
df = pd.read_table('mycsv.csv', sep=',')
待读取文件没属性列名称

自动以数字零开始,取名属性列

1
2
3
4
5
6
pd.read_table('....csv', header=None)
>>> 0 1 2 3 ....
>>> 0 . . . .
>>> 1 . . . .
>>> 2 . . . .
>>> ....
自己取名列名
1
pd.read_table('...csv', names = [.....])
以某一列为index
1
pd.read_table('...csv', names=[....], index_col='某一列的名字')
正则表达式匹配
1
pd.read_table('...csv', sep='/s+')
当第一行比后续行少一个

则相当于已有了index和属性名

read_csv和read_table的其它参数

skiprows

用于文件中的一些无用行

1
pd.read_csv('...csv', skiprows=[2,8,9])
nrows

只显示前n行

1
pd.read_csv('...csv', nrows=5)

缺失值处理

默认用NaN填写缺失值

isnull()
1
pd.isnull(dataframe对象)

导出CSV文件

JSON格式数据的导入与导出

二进制文件的导入与导出

ASCII文件也称为文本文件,这du种文件在磁盘中存放时每个字符对应一个字节,用于存放对应的ASCII码。例如,数5678的存储形式为:5 6 7 8
二进制文件是按二进制的编码方式来存放文件的。 例如, 数5678的存储形式为: 00010110 00101110只占二个字节。二进制文件虽然也可在屏幕上显示, 但其内容无法读懂。C系统在处理这些文件时,并不区分类型,都看成是字符流,按字节进行处理。 输入输出字符流的开始和结束只由程序控制而不受物理符号(如回车符)的控制。 因此也把这种文件称作“流式文件”。

二进制文件类型很多,都有自己独特的存储方式。处理这些文件可能涉及非常复杂的过程。由于二进制文件格式复杂且不通用,数据导入工作应尽可能避免使用程序直接处理二进制格式文件

ExcelFile类型

pandas通过ExcelFile类型提供对Excel文件的基本支持

ExcelFile类在内部使用xlrdopenpyxl包来操作Excel文件,需要提前安装

1
2
3
import pandas as pd
xls = pd.ExcelFile('mydata.xls') // 首先导入excel文件,需要创建ExcelFile实例
df = xls.parse('mysheet') // 加入mydata.xls存在一个mysheet的表格,使用parse来解析它,获得一个dataframe对象

to_excel()

1
pd.DataFrame(pf).to_excel('out.xlsx', sheet_name='mydata',index=False,header=False)

数据库的导入与导出

关系型数据库的导入和导出

非关系型数据库的导入和导出


本文标题:第七章-基于python的数据导入与导出

文章作者:TTYONG

发布时间:2021年01月02日 - 17:01

最后更新:2021年01月02日 - 19:01

原始链接:http://tianyong.fun/%E7%AC%AC%E4%B8%83%E7%AB%A0-%E5%9F%BA%E4%BA%8Epython%E7%9A%84%E6%95%B0%E6%8D%AE%E5%AF%BC%E5%85%A5%E4%B8%8E%E5%AF%BC%E5%87%BA.html

许可协议: 转载请保留原文链接及作者。

多少都是爱
0%