数据预处理-数据变换-连续属性离散化实现:pandas(0.23)+sklearn(0.19.1)+matplotlib(2.2.2)

本文介绍了如何使用pandas(0.23)、sklearn(0.19.1)和matplotlib(2.2.2)进行数据预处理中的连续属性离散化操作。通过纠正源代码中的错误,包括data.reshape到data.values.reshape的修正、sort到sort_values的调整以及pd.rolling_mean到pd.DataFrame.rolling.mean的更新,实现了数据的正确处理。此外,还修正了列表推导式中索引错误,确保离散化过程的准确性。
摘要由CSDN通过智能技术生成

代码来源:Python数据分析与挖掘实战

源代码有如下错误:

line22: 原: data.reshape      修改后:  data.values.reshape
line23: 原: sort(0)                  修改后: sort_values(0)
line24: 原: pd.rolling_mean(c, 2).iloc[1:]            修改后: pd.DataFrame.rolling(c, 2).mean().iloc[1:]
line31: 原: [j for i in d[d==j]]     修改后: [i for i in d[d==j]]

import pandas as pd
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

datafile = '../data/discretization_data.xls'
data = pd.read_excel(datafile)
data = data[u'肝气郁结证型系数'].copy()
k = 4

d1 = pd.cut(data, k, labels=range(k))    #等宽离散化,各个类比依次命名为0,1,2,3

#等频率离散化
w = [1.0*i/k for i in range(k+1)]
w = data.describe(percentiles=w)[4:4+k+1]    #使用desc
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值