python进行数据处理_用python进行数据分析(二:数据处理)

本文详细介绍了使用Python进行数据处理的各种方法,包括检查和处理缺失值(如用均值填充、删除、使用sklearn库),数据不平衡问题的解决(如SMOTE、Borderline-SMOTE),重复值的检测和删除,以及异常值的处理。还涉及到字符串操作、值替换、哑变量创建、数据尺度调整、正态化和标准化等实用技巧。
摘要由CSDN通过智能技术生成

四、数据处理

(1)缺失值

查看缺失情况:

1 data.isnull()#查看所有缺失值

2 data.isnull().any()#获取含有缺失值的列

3 data.isnull().all()#获取全部为NA的列

删除缺失值:

data2=data.dropna()

利用sklearn替换缺失值。当缺失值为数值型数据时,可用利用均值来替换

data.index=data['name']#将第一列作为索引data=data.drop(['name'],axis=1)#删除第一列

nan_model=Imputer(missing_values='NaN',strategy='mean',axis=0)#按照行均值替换对应缺失值。

nan_result=nan_model.fit_transform(data)

利用pandas替换缺失值(常用)

data.fillna(0) #缺失值用0替换

data.fillna(method='pad')#用前面的值替换

data.fillna(method='backfill')#用后面的值替换

一个实例(https://blog.csdn.net/weixin_41576911/article/details/83744417):

importpandas as pd

importnumpy as np

from sklearn.preprocessing importImputer

df = pd.DataFrame(np.random.randn(6,4),columns = list('abcd'))

df.iloc[4,3] = np.nan#iloc是选择行和列

df.loc[3] = np.nan#loc是选择行

print(df)

print(df.loc[0:2,3])

nan_all=df.isnull()

print(nan_all)

drop = df.dropna()#丢弃包含缺失值的行记录

print(drop)

又一个实例(https://www.jianshu.com/p/d750ba9075dd,写得比我清楚,强推!):

# 删除完全缺失的行,若不指定参数how,则删除的是所有含有nan的行

>>>data.shape

(6578, 7)

>>> data_drop_nan = data.dropna(how='all')

>>>data_drop_nan.shape

(6577, 7)

>>>data.dropna().shape

(6575, 7)

# 对部分缺失行进行填充

# 用后一行的值填充前一行的缺失值

>>> data_drop_nan.fillnan(method='backfill')

# 对指定列填充指定值

>>> data_drop_na.fillna({'购药时间':'2018-01-20 星期三', '社保卡号': '1.338953e+07'})

另一个例子(https://blog.csdn.net/wangxingfan316/article/details/79363420),是将price为0的值改为了36:

data['price'][data['price']==0]=None

x =0

for i indata.columns:

for j inrange(len(data)):

if(data[i].isnull()) [j]:

data[i][j]='36'x+=1

print(x)

(2)数据不平衡

首先是SMOTE函数的使用ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值