数据库交互
1.使用流行的Python的SQL工具包SQLAlchemy,它能简化你的数据库操作。
2.同时,pandas提供了一个read_sql函数,允许你从通用的SQLAlchemy连接中轻松地读取数据
3.在Anaconda中,已经默认安装了SQLAlchemy,可以直接使用
import sqlalchemy as sqla
import pandas as pd
db = sqla.create_engine('mysql+pymysql://yyuser:yy123456@106.75.52.178:3307/ares_sso?charset=utf8mb4')
# 创建连接
# mysql+pymysql:// 账户:密码 @ 链接地址:及端口 / 链接的数据库名称 ? charset=utf8mb4 字符集
pd.read_sql('select * from channel', db) # 查询数据并转换为pandas对象
engine = create_engine('mysql+mysqlconnector://root:123456@localhost:3306/test')
我使用了mysql数据库,数据库连接框架用的是mysqlconnector,用户名为root,密码是123456,端口号是localhost(127.0.0.1),端口号是3306(mysql服务器默认端口号),test是数据库的名字。
删除缺失值
pandas中
- dropna:删除缺失值
- fillna: 用某些值填充缺失的数据或使用插值方法(比如ffill\bfill)
- isnull:判断哪些值是缺失值,返回布尔
- notnull:isnull的反函数
例:s.dropna()
删除缺失值
DataFrame中
在处理DataFrame对象的缺失值的时候,可能会复杂点。无法删除df的单个元素,只能整行整列的删除
df.dropna()
#删除有空值的行 (只要行中有一个空值就删全行)
df.dropna(how='all')
#删除一整行全是空值的
df.dropna(axis=1)
#删除有空值的列 (只要列中有一个空值就删全列)
df.dropna(axis=1, how='all')
#删除一整列全是空值的
df.fillna(method='bfill'/'ffill',limit=2 )
用某些值填充缺失的数据或使用插值方法
#bfill向后填充 ffill向前填充 limit=限制填充次数
补全缺失值
DataFrame中
df.fillna(method='bfill'/'ffill',limit=2 )
用某些值填充缺失的数据或使用插值方法
#bfill向后填充 ffill向前填充 limit=限制填充次数 (与缺失值中的笔记相同)
删除重复值
DataFrame中
1.使用duplicated方法判断各行是否有重复,并返回一个布尔值Series。
2.然后使用drop_duplicates方法将重复行删除,留下那些不重复的。
例:df.drop_duplicates(['k1'])
#删除df中k1列的重复值 不写默认删除 整行重复值