文章目录
Pandas 基础之 导入数据
导入数据主要用到的是 Pandas 中的
read_x()
方法,x标示导入文件格式
导入 xlsx 文件
这里是我们原始的 xlsx 文件内容
导入指定名 Sheet
xlsx 格式可以有多个 Sheet, 可以通过设置 sheet_name 参数来指定导入哪一个
df2 = pd.read_excel(r'test.xlsx', sheet_name='Sheet1')
r 的作用是转义,防止 \ 等符号,也可以不写
导入指定索引 Sheet
xlsx 格式可以有多个 Sheet, 可以通过设置 sheet_name 下标索引来直接获取(不用名称获取的时候可以使用这样的方法)
df3 = pd.read_excel(r'test.xlsx', sheet_name=0) # 索引为0的哪个Sheet 开始导入
设置指定竖为索引
指定横向第n竖为索引,默认为表格自带的索引
例如
df4 = pd.read_excel(r'test.xlsx', index_col=1)
第一张是默认导入,第二张是指定导入
指定从第几行开始载入
指定从第几行开始,默认0开始
df5 = pd.read_excel(r'test.xlsx', header=0)
指定导入哪几列
填写需要的索引即可, 列表形式
df6 = pd.read_excel(r'test.xlsx', usecols=[0, 2])
导入 csv 文件
简单导入
df1 = pd.read_csv(r'test.csv')
指定分隔符号
read_csv() 默认文件中的数据都是以逗号分开的, 但有的特殊情况不是! 此时就要指定分隔符号, 否则会报错
df2 = pd.read_csv(r'test.csv', sep=" ") # 以空给为分隔符
指定读取行数
df3 = pd.read_csv(r'test.csv', nrows=2) # 只会读取 2 行数据
指定编码读取
最常用的是 utf8 和 gbk,默认 utf8
df4 = pd.read_csv(r'test.csv', encoding='gbk') # 设置编码为gbk
导入中文名文件
read_csv 默认使用 C 语言解释, 如果遇到中文名,需要 engine 设置为 python。 文件格式是 utf-8,编码格式也需要改为 utf-8-sig
df5 = pd.read_csv(r'test.csv', engine='python', encoding='utf-8-sig')
行索引等其余操作
与 xlsx 操作相同,参考 xlsx 导入设置即可
导入 txt 文件
read_table() 方法利用分隔符,不仅可以导入 txt 文件 同时也可以导入 csv
df = pd.read_table(r'text.txt', sep=' ') # 以空格符为分隔 导入 txt 文件
导入 sql 文件
主要分为2步
- 链接 mysql
- 通过 sql 语句查询并读入 pandas 中
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()
就可以统计出, 总数、最大、最小等等详细分布值