问题:
1,如何利用Pandas将等距数据变成等级数据?
2,如何将字符串标签的等级数据转化成数值型的数据?
用kaggle Titanic数据举例:Pclass表示船票等级,Fare表示船票的价格,那同一个船票等级中,不同的船票价格是不是座位的位置也不一样,这是否会影响逃生的顺序呢?(有人可能也会说,影响船票价格的还包括上船的港口位置,越早上传可能价格也比较贵,但是为了简单化,我们这里先不考虑这种情况)。
因此我们需要导入数据,将同一个船票等级,又分成票价高和票价低的数据,即将数值型数据转化成等级数据。
我们拟用:pandas,applay()函数实现,第一个问题,用sklearn.preprocessing.LabelEncoder方法完成等级数据标签的数值化。
# 核心代码1
df.apply(funcName, args=(),axis=1)
# 核心代码2
from sklearn.preprocessing import LabelEncoder
level = LabelEncode()
# 按顺序对array进行数值编码
level.fit(np.array([]))
# 根据上面的标签和数值的映射关系,对列表的数据进行逐一映射
level.transform([])
这个代码表示依次将df每一行的数据,传入到funcName中,同时也把args的参数传入到funcName中,axis=1表示的就是将行数据传入到函数中。
具体实现代码如下(亲测可用):
import pandas as pd
import numpy as np
def getRankData(df, Pclass1_Fare_mean, Pclass2_Fare_mean, Pclass3_Fare_mean):
if df