首页 > 其他 > 详细

Pandas模块

时间:2019-10-12 19:53:57      阅读:105      评论:0      收藏:0      [点我收藏+]

Pandas属于专门做数据预处理的数据科学包。下面来介绍一下我认为Pandas模块中需要掌握的功能和函数。

    数据读写       

技术分享图片

案例演示   

# 读入MySQL数据库数据
# 导入第三方模块
import pymysql

# 连接MySQL数据库
conn = pymysql.connect(host=localhost, user=root, password=test, 
                       database=test, port=3306, charset=utf8)
# 读取数据
user = pd.read_sql(select * from topy, conn)
# 关闭连接
conn.close()
# 数据输出
User

  数据初印象   

技术分享图片

案例演示     

# 数据读取
sec_cars = pd.read_table(rC:UsersAdministratorDesktopsec_cars.csv, sep = ,)
# 预览数据的前五行
sec_cars.head()

# 查看数据的行列数
print(数据集的行列数:,sec_cars.shape)

# 查看数据集每个变量的数据类型
print(各变量的数据类型:,sec_cars.dtypes)

# 数据的描述性统计
sec_cars.describe()

      数据清洗   

技术分享图片

案例演示     

# 数据读入
df = pd.read_excel(rC:UsersAdministratorDesktopdata_test05.xlsx)
# 缺失观测的检测
print(数据集中是否存在缺失值:,any(df.isnull()))

# 删除法之记录删除
df.dropna()
# 删除法之变量删除
df.drop(age, axis = 1)

# 替换法之前向替换
df.fillna(method = ffill)
# 替换法之后向替换
df.fillna(method = bfill)

# 替换法之常数替换
df.fillna(value = 0)
# 替换法之统计值替换
df.fillna(value = {gender:df.gender.mode()[0], age:df.age.mean(),     
                   income:df.income.median()})

  类型转换与元素及运算   

技术分享图片

案例演示     

# 数据读入
df = pd.read_excel(rC:UsersAdministratorDesktopdata_test03.xlsx)

# 将birthday变量转换为日期型
df.birthday = pd.to_datetime(df.birthday, format = %Y/%m/%d)

# 将手机号转换为字符串
df.tel = df.tel.astype(str)

# 新增年龄和工龄两列
df[age] = pd.datetime.today().year - df.birthday.dt.year
df[workage] = pd.datetime.today().year - df.start_work.dt.year

# 将手机号中间四位隐藏起来
df.tel = df.tel.apply(func = lambda x : x.replace(x[3:7], ****))
# 取出邮箱的域名
df[email_domain] = df.email.apply(func = lambda x : x.split(@)[1])

# 取出人员的专业信息
df[profession] = df.other.str.findall(专业:(.*?),)
# 去除birthday、start_work和other变量
df.drop([birthday,start_work,other], axis = 1, inplace = True)

数据合并、连接与汇总

技术分享图片

案例演示     

# 构造数据集df1和df2
df1 = pd.DataFrame({name:[张三,李四,王二], age:[21,25,22], 
                  gender:[,,]})
df2 = pd.DataFrame({name:[丁一,赵五], age:[23,22], gender:[,]})
# 数据集的纵向合并
pd.concat([df1,df2] , keys = [df1,df2])

# 如果df2数据集中的“姓名变量为Name”
df2 = pd.DataFrame({Name:[丁一,赵五], age:[23,22], gender:[,]})
# 数据集的纵向合并
pd.concat([df1,df2])

# 构造数据集
df3 = pd.DataFrame({id:[1,2,3,4,5],name:[张三,李四,王二,丁一,赵五],
                  age:[27,24,25,23,25],gender:[,,,,]})
df4 = pd.DataFrame({Id:[1,2,2,4,4,4,5], score:[83,81,87,75,86,74,88]
                  kemu:[科目1,科目1,科目2,科目1,科目2,科目3,科目1]})
df5 = pd.DataFrame({id:[1,3,5],name:[张三,王二,赵五],
                  income:[13500,18000,15000]})
# 三表的数据连接
# 首先df3和df4连接
merge1 = pd.merge(left = df3, right = df4, how = left, left_on=id, right_on=Id)
merge1
# 再将连接结果与df5连接
merge2 = pd.merge(left = merge1, right = df5, how = left)
merge2

Pandas模块

原文:https://www.cnblogs.com/bind/p/11663310.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!