在数据分析中,数据的导入与导出往往是极其重要的,如果不能有效的方便的将数据导入导出,那么后面的一切就无处下手,因此今天介绍的就是如何将数据进行导入与导出操作。
数据导入
读取文本格式数据
在pandas中提供了一些用于将表格型数据读取为DataFrame对象的函数,具体如表.
函数 | 说明 |
---|---|
read_csv | 从文件、URL、文件型对象中加载带分隔符号的数据,默认分割符号为逗号 |
read_table | 从文件、URL、文件型对象中加载带分隔符号的数据,默认分割符号为制表符号(“\t”) |
read_fwf | 读取定宽列格式数据(没有分割符号) |
read_clipboard | 读取剪贴板中的数据,可以看做read_table的剪贴板版,在网页转转换为表格时很有用。 |
前面两个加粗并斜体两个用的最多,因此在此给出两个函数的参数,结果如表
函数 | 说明 |
---|---|
path | 表示文件系统位置、URL、文件型对象的字符串,在此要注意相对路径与绝对路径 |
sep或者delimiter | 用于对各行进行拆分的字符序列或正则表达式 |
header | 用作列名的行号。默认为0(第一行),如果没有header行就应该设置为None |
index_col | 用作行索引的列编号或者列名。可以是单个名称/数字或由多个名称/数字组成的列表(层次化索引) |
names | 用于结果的列名列表,结合header=None |
skiprows | 需要忽略的行数(从文件开始出算起),或需要跳过的行号列表(从0开始) |
na_values | 一组用于替换NA的值(字典形式) |
comment | 用于将注释信息从行维拆分出去的字符(一个或多个) |
parse_dates | 尝试将数据解析为日期,默认False。如果为True,则尝试解析所有列。此外,还可以指定需要解析的一组列号或列名。如果列表的元素为列表或元组,就会将多个列组合到一起再进行日期解析工作(例如,日期/时间分别位于两个列中) |
keep_date_col | 如果连接多列解析时间,则保持参与连接的列,默认为False |
converters | 由列号/列名跟函数之间的映射关系组成的字典,例如{’w‘:x}会对w列的所有值应用函数x |
dayfirst | 当解析有歧义的日期时,将其看做国际格式。默认为False |
data_parser | 用于解析日期的函数 |
nrows | 需要读取的函数(从文件开始出算起) |
iterator | 返回一个TextParser以便逐块读取文件 |
chunksize | 文件的大小(用于迭代) |
skip_footer | 需要忽略的行数(从文件末尾处算起) |
verbose | 打印各种解析器输出的信息,比如“非数值列种缺失值的数量”等 |
encoding | 用于unicode的文本编码格式。例如’utf-8‘表示UTF-8编码的文本 |
squeeze | 如果数据经解析后仅含一列,则返回Series |
thousands | 千分位分隔符,如’,‘或’.‘ |
通过上面两张表我们知道了两个常用的函数以及函数的参数,接下来又到令人开心愉快的代码展示环节。
数据存放在一个txt文件中具体形式如图。
从中不难发现数据之间的分割符号为制表符号,并且没有列名与索引。因此我们采用如下代码。
app_launch_log_data = pd.read_table('app_launch_log.txt',header=None,names=['第一列','第二列'],index_col='第一列')
#查看数据前5列
app_launch_log_data.head()
如果代码没有设置header=None,names=[‘第一列’,’第二列’],index_col=’第一列’读取后的数据结果如下:
tip:可以将数据加入header以及设置好参数读取进来再将数据按照读取的格式保存起来,方便以后的操作。
na_values接受一组用于表示缺失值的字符串
将数据写出到文本格式
利用dataframe的to_csv方法,此次需要注意是否设置了index=False,具体查看下图
在没有设置好index=False时,读取后会多出一列。
数据库中数据的读取以及操作
首先需要在电脑上安装好数据库(此处拿mysql做例子),熟悉sql语句。在此文章中只给出框架,具体详细,会在以后的文章中说明。
import pymysql
#数据库的连接,'school'表示具体用的数据库,'root'为连接数据库的用户名,'123456'代表密码。
db = pymysql.connect('localhost', 'root', '123456', 'school')
#建立游标对象
cursor = db.cursor()
#sql语句
sql = ' '
#执行sql语句
try:
data=cursor.execute(sql)
db.commit()
except:
db.rollback()
#关闭数据库连接
db.close()
读取Microsoft Excel文件
采用ExcelFile函数或者(read_excel)
用ExcelFile举例
xls_file = pd.ExcelFile('data.xls')
table = xls_file.parse('Sheet1')