问题描述
我想使用Keras的顺序模型预测序列。我的数据框包含字符串数据,因此我决定使用sklearn库中的LabelEncoder
对字符串数据进行编码。
我尝试了以下代码段:
import pandas as pd
df = pd.read_csv("sample-03.csv")
from sklearn.preprocessing import LabelEncoder
df.apply(LabelEncoder().fit_transform)
给出此结果:
此标签编码应用于具有不同值的每一列,即对于整个数据集,我需要将http://example.com/296表示为“ 2”。 谢谢您提出解决方案。
我还尝试将数据集转换为元组,并为此数据集使用字典,但同样,键对于不同列中的相同值也不是唯一的。
解决方法
LabelEncoder
无法满足您的要求。我建议编写一个提取所有唯一URL的小函数,然后为每个URL分配一个数值,然后用数据框中的相应数值替换这些URL。
我想出了解决方案,想在这里分享。
le = LabelEncoder()
le.fit(df.stack().unique())
df['x-2']= le.transform(df['x-2'])
df['x-1']= le.transform(df['x-1'])
df['x0']= le.transform(df['x0'])
df['x1']= le.transform(df['x1'])
df['x2']= le.transform(df['x2'])