pandas数据清洗与整理--课堂笔记(1)

from pandas import Series,DataFrame
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt 
import matplotlib as mpl
import seaborn as sns
%matplotlib inline

关于matplotlib inline 的解释

缺失值

判断是否有缺失值

df1.isnull()   #True的为缺失值
df1.notnull()   #False为缺失值

每一特征的缺失值的总量

df1.isnull().sum()

所有缺失值的总量

df1.isnull().sum().sum()

查看是否有缺失值

df1.isnull().values.any()
df1.info()

缺失值删除

df1.dropna()

构建一个有缺失值的dataframe

df2 = DataFrame(np.arange(12).reshape(3,4))
df2

在这里插入图片描述

df2.ix[2,:] = np.nan
df2[3] = np.nan
df2

在这里插入图片描述
删除所有是nan的行

df2.dropna(how='all')

删除所有是nan的列

df2.dropna(how='all',axis=1)

在这里插入图片描述
用0填充nan

df2.fillna(0)

在这里插入图片描述
将df[0]用1填补缺失值,将df[1]用6填充

df2.fillna({0:1,1:6,2:9,3:11})

在这里插入图片描述
在这里插入图片描述

df2.fillna(method='ffill')

在这里插入图片描述

重复数据

df1.duplicated()
df1.drop_duplicates(inplace=True)

在这里插入图片描述
在这里插入图片描述

df1.drop_duplicates(['sex','year'])

df1.drop_duplicates(['sex','year'],keep='last')

在这里插入图片描述

替换值

在这里插入图片描述
在这里插入图片描述

df1.replace(['',2001],['不详',2002])
df1.replace({'':'不详',2001:2002})

在这里插入图片描述
用函数
在这里插入图片描述

def f(x):
    if x >= 90:
        return '优秀'
    elif 70<=x<90:
        return '良好'
    elif 60<=x<70:
        return '合格'
    else:
        return '不合格'
df2['class'] = df2['math'].map(f)

在这里插入图片描述
删除操作

del df2['class']

在这里插入图片描述

异常值

创建一个dataframe

df3 = DataFrame(np.arange(10),columns=['X'])
df3['Y'] = 2 * df3['X'] + 0.5
df3.iloc[9,1] = 185
df3

在这里插入图片描述

df3.plot(kind='scatter',x='X',y='Y')

在这里插入图片描述

one-hot 编码----哑变量

在这里插入图片描述
所以最终得到的每句话的特征向量就是:

我爱中国 -> 1,1,0,0,1
爸爸妈妈爱我 -> 1,1,1,1,0
爸爸妈妈爱中国 -> 0,1,1,1,1
那么这样做的优点和缺点都有什么?

优点:

解决了分类器处理离散数据困难的问题
一定程度上起到了扩展特征的作用(上例中从3扩展到了9)
缺点:

one-hot是一个词袋模型,不考虑词与词之间的顺序问题,而在文本中,次的顺序是一个很重要的问题
one-hot是基于词与词之间相互独立的情况下的,然而在多数情况中,词与词之间应该是相互影响的
one-hot得到的特征是离散的,稀疏的
https://blog.csdn.net/Dorothy_Xue/article/details/84641417

在这里插入图片描述

merge

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值