数据分析(3) Pandas数据读取
通过Pandas提供的read_xxx相关的函数可以读取文件中的数据,并形成DataFrame,常用的数据读取方法为:read_csv( )和read_excel( ),主要可以读取文本类型的数据。
1 读取格式
pd.read_csv ( filepath, encoding, sep, header, names, usecols, index_col, skiprows, nrows……)
(1)filepath:文件存储路径,可以用r‘ ‘进行非转义限定,路径最好是纯英文(文件名也是),不然会经常碰到编码不对问题,最方便是直接将文件存储在Pandas默认的路径下,则直接输入文件名即可
(2)encoding:pandas默认编码是utf-8,如果同样读取默认uft-8的txt或者json格式,则可以忽略这个参数,如果是CSV,且数据中有中文时,则要指定encoding=‘gbk‘
(3)sep:指定分割符形式,CSV默认逗号分割,可以忽略这个参数,如果是其它分割方式,则要填写。默认为单字符,若为双字符分割,需要增加参数engine=‘python‘
import pandas as pd df1 = pd.read_csv(‘test1.txt‘) df2 = pd.read_csv(‘test2.txt‘, sep=‘;‘) df3 = pd.read_csv(‘test3.txt‘, sep=‘::‘, engine=‘python‘) print(‘===== 逗号分割 =====\n‘, df1) print(‘===== 分号分割 =====\n‘, df2) print(‘===== 双冒号分割 =====\n‘, df3)# ===== 逗号分割 ===== # name age scores # 0 gerry 18 98.5 # 1 tom 21 78.2 # 2 lili 24 98.5 # 3 john 20 89.2 # ===== 分号分割 ===== # name age scores # 0 gerry 18 98.5 # 1 tom 21 78.2 # 2 lili 24 98.5 # 3 john 20 89.2 # ===== 双冒号分割 ===== # name age scores # 0 gerry 18 98.5 # 1 tom 21 78.2 # 2 lili 24 98.5 # 3 john 20 89.2
(4)header:指定第一行是否是列名,通常有三种用法:忽略或header=0(表示数据第一行为列名),header=None(表明数据没有列名),常与names搭配使用
(5)names:指定列名,通常用一个字符串列表表示,当header=0时,用names可以替换掉数据中的第一行作为列名,如果header=None,用names可以增加一行作为列名,如果没有header参数时,用names会增加一行作为列名,原数据的第一行仍然保留
df4 = pd.read_csv(‘test2.txt‘, sep=‘;‘, header=None) df5 = pd.read_csv(‘test2.txt‘, sep=‘;‘, header=None, names=[‘A‘, ‘B‘, ‘C‘]) print(‘===== 默认列名保留第一行 =====\n‘, df4) print(‘===== 指定列名保留第一行 =====\n‘, df5)# ===== 默认列名保留第一行 ===== # 0 1 2 # 0 name age scores # 1 gerry 18 98.5 # 2 tom 21 78.2 # 3 lili 24 98.5 # 4 john 20 89.2 # ===== 指定列名保留第一行 ===== # A B C # 0 name age scores # 1 gerry 18 98.5 # 2 tom 21 78.2 # 3 lili 24 98.5 # 4 john 20 89.2
(6)usecols:一个字符串列表,可以指定读取的列名
(7)index_col:一个字符串列表,指定哪几列作为索引
(8)skiprows:跳过多少行再读取数据,通常是数据不太干净,需要去除掉表头才会用到
(9)nrows:仅读取多少行,后面的处理也都仅限于读取的这些行
2 写入格式
DataFrame.to_csv(‘filename‘)
【其他数据格式持续补充......】