1.Pandas数据结构
- Series :是一种类似于一维数组的对象,由一组数据以及一组与之相关的数据标签(即索引)组成。
- DataFrame :是一个表格型的数据结构,既有行索引又有列索引的一种数据结构.
2.外部导入数据
格式 :
pd.read_excel(r"D:\Data-Science\share\data\pandas_train.xlsx",encoding = "gbk",engine=‘python‘,sep = " ")
导入SQL :
import pymysql
sql_cmd = "SELECT * FROM memberinfo"
db = pymysql.connect(host = "118.190.201.131",
user = "zhangjh",
password = "zhangjh123",
db = "demo" ,
charset = "utf8")
# host:数据库地址/本机使用localhost
# user:用户名
# password:密码
# db:数据库名
# charset:数据库编码,一般为UTF-8
#注:如果用户名或密码中包含特殊符号@、%等符号时,需要修改密码方可链接
df = pd.read_sql(sql_cmd, db)
总结:
同样数量的数据,导入excel格式是导入csv格式的10倍,所以尽量将表转为csv以后进行处理
3.数据熟悉
head(N)
|
输出前N行 , 默认5行
|
shape
|
输出(行数, 列数)
|
info()
|
输出表相关信息
|
describe()
|
输出数值型数据的count,中位数,min,max,mean等
|
4.数据预处理
1.删除缺失值
dropna() 默认删除含有缺失值得行
参数:
how="all" 删除全为缺失值的行
2.填充缺失值
fillna()
#fillna()和dropna()默认会返回一个替换后的新对象,不改变源数据,这个时候将替换后的数据赋值给新的表,如果要改变源数据,通过传入inplace=True进行更改
# 以字典的形式指明要填充的列名
5.重复值处理
对于重复值我们一般是进行删除处理,使用的方法是drop_duplicates()
#subset表示按哪列/几列进行去重
#keep=first表示保留保留第一个,=last表示保留最后一个,=False表示删除所有重复值,默认是first
#inplace表示是否更改源数据
6.异常值处理
- 最常用的处理方式就是删除。
- 把异常值当作缺失值来填充。
- 把异常值当作特殊情况,研究异常值出现的原因。
类型
|
说明
|
int
|
整型数,即整数
|
float
|
浮点数,即含有小数点
|
object
|
python对象类型,用O表示
|
string_
|
字符串类型,经常用S表示,S10表示长度为10的字符串
|
unicode_
|
固定长度的unicode类型,跟字符串定义方式一样,经常用U表示
|
7 索引设置
7.1 为无索引表设置索引
df.columns = ["技能","周数"]
df.index = [‘第一‘, ‘第二‘, ‘第三‘, ‘第四‘]
7.2 重新设置索引
#设置单一索引
df112.set_index("用户编号").head()
#设置层次化索引
df64=df112.set_index(["家庭成员","好坏客户"])
7.3 重命名索引
#利用rename的方法对行/列名进行重命名
columns={"用户编号":"用户编号-测试",
"好坏客户":"好坏客户-测试"}
index={0:"zero",
1:"one"}
df112.rename(columns=columns,index=index).head()
7.4 重置索引
reset_index(level=None, drop=False, inplace=False)
level 参数用来指定要将层次化索引的第几级别转化为 columns,第一个索引为 0 级,第二个索引为 1 级,默认为全部索引,即默认把索引全部转化为 columns。
drop参数用来指定是否将原索引删掉,即不作为一个新的columns,默认为False, 即不删除原索引。
inplace 参数用来指定是否修改原数据表。
pandas基础
原文:https://www.cnblogs.com/liuyuanq/p/11306270.html