pandas 数据加载

读取数据

  • read_csv 默认分隔符为逗号
  • read_table 默认分隔符为制表符(\t)
  • read_fwf 没有分隔符
  • read_clipboard 读取剪切板中的数据
read_table 读取csv文件时,指定分隔符 sep=','

没有列名时

  • 方法一:
    默认分配列名 参数 header=None
  • 方法二:
    变量names=['a', 'b', 'c', 'd', 'message']
    自定义列名 参数 names=names
    将message列名作为索引 pd.read_csv('xx.csv', names=names, index_col='message')
    层次化索引 pd.read_csv('xx.csv', names=names, index_col=['b', 'message'])

其他分隔符,可以用正则表达式作为read_table的分隔符

pd.read_table('xxx.txt', sep='\s+') 如果是数量不等的空白符分割
参数skiprows跳过文件的第一行、第三行和第四行。 skiprows=[0, 2, 3]

read_csv和read_table参数

参数 描述
path 文件位置、url、文件型对象的字符串
sep或delimiter 对行中各字段进行拆分的字符序列或正则表达式
header 用作列名的行号。默认为0(第一行)。如果没有header行就应该设置为None
index_col 用作行索引的列编号或列名。可以是单个名称/数字或由多个名称/数字组成的列表(层次化索引)
names 用于结果的列名列表,当header=None时
skiprows 需要忽略的行数,或需要跳过的行号列表
na_values 一组用于替换NA的值,可以是列表或字典
nrows 需要读取的行数(从文件开始处算起)
skip_footer 需要忽略的行数(从文件末尾处算起)
squeeze 如果数据经解析后仅含一列,则返回Series
thousands 千位分隔符
chunksize 如设置=1000则读取1000行,返回TextParser,可以进行迭代

TextParser还有一个get_chunk方法,可以读取任意大小的块

将数据写到文本格式

data = pd.read_csv('xxx.csv')
data.to_csv('xxx2.csv')
还可以用其他分割符 data.to_csv(sys.stdout, sep='|')
缺失值在输出结果中会被表示为空字符串,用其他值来标记 data.to_csv(sys.stdout, na_rep='NULL')
不写入行和列的标签data.to_csv(sys.stdout, index=False, header=False)
以指定顺序,写出一部分的列 data.to_csv(sts.stdout, index=False, cols=['a', 'b', 'c'])

从csv中读取Series,用from_csv比read_csv更方便,因为无header行,且第一列作索引

从Excel中读取

获取Excel对象 xls_file = pd.ExcelFile('xxx.xls')
读取某个表 table = xls_file.parse('Sheet1')

从数据库中存取

import pandas.io.sql as sql
sql.read_frame('select * from tablename', conn)

你可能感兴趣的:(pandas 数据加载)