Pandas 2.基础之导入数据

pandas导入,并熟悉数据

Pandas 基础之 导入数据

导入数据主要用到的是 Pandas 中的 read_x() 方法,x标示导入文件格式

导入 xlsx 文件

这里是我们原始的 xlsx 文件内容

导入指定名 Sheet

xlsx 格式可以有多个 Sheet, 可以通过设置 sheet_name 参数来指定导入哪一个

1
df2 = pd.read_excel(r'test.xlsx', sheet_name='Sheet1')

r 的作用是转义,防止 \ 等符号,也可以不写

导入指定索引 Sheet

xlsx 格式可以有多个 Sheet, 可以通过设置 sheet_name 下标索引来直接获取(不用名称获取的时候可以使用这样的方法)

1
df3 = pd.read_excel(r'test.xlsx', sheet_name=0)  # 索引为0的哪个Sheet 开始导入

设置指定竖为索引

指定横向第n竖为索引,默认为表格自带的索引

例如

1
df4 = pd.read_excel(r'test.xlsx', index_col=1)

第一张是默认导入,第二张是指定导入

指定从第几行开始载入

指定从第几行开始,默认0开始

1
df5 = pd.read_excel(r'test.xlsx', header=0)

指定导入哪几列

填写需要的索引即可, 列表形式

1
df6 = pd.read_excel(r'test.xlsx', usecols=[0, 2])

导入 csv 文件

简单导入

1
df1 = pd.read_csv(r'test.csv')

指定分隔符号

read_csv() 默认文件中的数据都是以逗号分开的, 但有的特殊情况不是! 此时就要指定分隔符号, 否则会报错

1
df2 = pd.read_csv(r'test.csv', sep=" ")   # 以空给为分隔符

指定读取行数

1
df3 = pd.read_csv(r'test.csv', nrows=2)  # 只会读取 2 行数据

指定编码读取

最常用的是 utf8 和 gbk,默认 utf8

1
df4 = pd.read_csv(r'test.csv', encoding='gbk')  # 设置编码为gbk

导入中文名文件

read_csv 默认使用 C 语言解释, 如果遇到中文名,需要 engine 设置为 python。 文件格式是 utf-8,编码格式也需要改为 utf-8-sig

1
df5 = pd.read_csv(r'test.csv', engine='python', encoding='utf-8-sig')

行索引等其余操作

与 xlsx 操作相同,参考 xlsx 导入设置即可

导入 txt 文件

read_table() 方法利用分隔符,不仅可以导入 txt 文件 同时也可以导入 csv

1
df = pd.read_table(r'text.txt',  sep=' ')  # 以空格符为分隔 导入 txt 文件

导入 sql 文件

主要分为2步

  1. 链接 mysql
  2. 通过 sql 语句查询并读入 pandas 中
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import pandas as pd
import pymysql

# 导入sql文件
HOST = 'localhost'
PORT = 3306
USER = 'root'
PASSWORD = ''
DB = ''

# 查询语句
sql = """select * from city"""

# 1. 创建链接
eng = pymysql.connect(host=HOST, user=USER, port=PORT, password=PASSWORD, db=DB)

# 2. 执行sql查询语句
df = pd.read_sql(sql, eng)

print(df)

熟悉数据

成功导入数据后我们第一件事并不是全部读取打印,而是要先预估数据大小以及读取前几天数据。

预览前几行 head

利用 df.head(n) 就可以只打印前 n 行,这样可以避免在不知道整个数据量的情况下,先预览表大概数据格式

取数据表大小

利用 df.shape 可以获取表大小,返回元祖 (表行数, 列数)

获数据类型

在做数据挖掘时, 不同数据类型处理方式是不同的。

利用 df.info() 会返回 总字段数,共暂用内存量等

取数值分布情况

该方法只会对数字类型列进行统计

利用 df.describe() 就可以统计出, 总数、最大、最小等等详细分布值