python - 使用 LabelEncoder() 编码数据
问题描述
我将以下数据集作为 csv 文件。
数据集 ecoli.csv:
seq_name,mcg,gvh,lip,chg,aac,alm1,alm2,class
AAT_ECOLI,0.49,0.29,0.48,0.50,0.56,0.24,0.35,cp
ACEA_ECOLI,0.07,0.40,0.48,0.50,0.54,0.35,0.44,cp
(more entries...)
ACKA_ECOLI,0.59,0.49,0.48,0.50,0.52,0.45,0.36,cp
ADI_ECOLI,0.23,0.32,0.48,0.50,0.55,0.25,0.35,cp
我对这个数据集的目的是应用一些分类算法。为了处理 ecoli.csv 文件,我尝试更改类列并在删除 seq_name 列时将其作为第一个放入。然后我正在打印一个测试来搜索空值。之后我在 sns 库的帮助下进行绘图。
错误前的代码:
column_drop = 'seq_name'
dataframe = pd.read_csv('ecoli.txt', header='infer')
dataframe.drop(column_drop, axis=1, inplace=True) # Dropping columns that I don't need
print(dataframe.isnull().sum())
plt.figure(figsize=(10,8))
sns.heatmap(dataframe.corr(), annot=True)
plt.show()
在编码之前以及我面临的错误之前,我根据类对数据集的值进行分组。最后,我尝试使用 LabelEncoder 对数据集进行编码,但出现错误:
错误代码:
result = dataframe.groupby(by=("class")).sum().reset_index()
print(result)
le = preprocessing.LabelEncoder()
dataframe.result = le.fit_transform(dataframe.result)
print(result)
错误:
AttributeError: 'DataFrame' object has no attribute 'result'
更新:result
填充了以下索引
class mcg gvh lip chg aac alm1 alm2
0 cp 51.99 58.59 68.64 71.5 64.99 44.71 56.52
1 im 36.84 38.24 37.48 38.5 41.28 58.33 56.24
2 imL 1.45 0.94 2.00 1.5 0.91 1.29 1.14
3 imS 1.48 1.02 0.96 1.0 1.07 1.28 1.14
4 imU 25.41 16.06 17.32 17.5 19.56 26.04 26.18
5 om 13.45 14.20 10.12 10.0 14.78 9.25 6.11
6 omL 3.49 2.56 5.00 2.5 2.71 2.82 1.11
7 pp 33.91 36.39 24.96 26.0 22.71 24.34 19.47
有什么想法吗?
解决方案
推荐阅读
- r - 仅给出最终样本大小的 R 多阶段抽样
- testing - Golang 测试覆盖与黑盒 _test 覆盖
- python - 将时间戳舍入到最接近的 30 秒
- java - couchbase 插入和查询延迟
- php - 在 000webhost 中找不到 Laravel 路由
- multithreading - 在 ABCL (Armed Bear) LISP 中如何创建后台子进程/后台线程?
- php - php pthreads中的动态任务调度?
- c++ - Visual Studio 控制台调试错误文件
- parsing - 使用解析选择sumologic中的字段时如何更改字段的格式
- java - 使用卡片布局时如何显示不同的 JPanel