当前位置: 首页 > 知识库问答 >
问题:

使用python将列文本数据转换为用于机器学习的功能

江阳冰
2023-03-14

左侧CSV文件有五列。应用程序列有几个应用程序类型,用分隔 。根据应用程序设备地区类型,我想预测目标。但我想首先将文件转换为右侧数据帧以应用机器学习。

我如何使用python做到这一点?


共有2个答案

束志业
2023-03-14

您可以首先阅读csv的方式,然后进行所有的编辑。所以首先...

   df = pd.read_csv("data.csv")

然后将应用程序列中的数据放入列表中。然后将列表合并成一个字符串,并在“;”处将其重新拆分除沫器。

   col = list(df.application)
   col_join = ";".join(col)
   col_split = col_join.split(";")

在你有了这个列表之后,你可以循环并删除重复的...

   i=0
   while i < len(col_split):
      j=i+1
      while j < len(col_split):
           if col_split[i] == col_split[j]:
               del(col_split[j])
      else:
        j += 1
    i += 1

现在,您有了一个列表,其中列出了所有可以读入数据框用作列的唯一应用程序条目。

夏弘义
2023-03-14

您需要对应用程序列应用多个热编码,对其他列应用一个热编码。

这是我的解决方案!

>>> import pandas as pd
>>> import numpy as np

>>> df = pd.DataFrame({'number': np.random.randint(0,10,size=5),
                  'device': np.random.choice(['a','b'],size=5),
                  'application': ['app2;app3','app1','app2;app4', 'app1;app2', 'app1'],
                  'district': np.random.choice(['aa', 'bb', 'cc'],size=5)})

>>> df

    application device  district    number
0   app2;app3   b         aa    3
1   app1        a         cc    7
2   app2;app4   a         aa    3
3   app1;app2   b         bb    9
4   app1        a         cc    4

from sklearn.preprocessing import OneHotEncoder, MultiLabelBinarizer

mlb = MultiLabelBinarizer()
# Assuming appl names are separated by ;
mhv = mlb.fit_transform(df['application'].apply(lambda x: set(x.split(';'))))
df_out = pd.DataFrame(mhv,columns=mlb.classes_)

enc = OneHotEncoder(sparse=False)
ohe_vars = ['device','district'] # specify the list of columns here
ohv = enc.fit_transform(df.loc[:,ohe_vars])
ohe_col_names = ['%s_%s'%(var,cat) for var,cats in zip(ohe_vars, enc.categories_) for cat in cats]

df_out.assign(**dict(zip(ohe_col_names,ohv.T)))

df_out
 类似资料:
  • Scikit-learn (http://scikit-learn.org/) 是一个机器学习领域的开源套件。整个专案起始于 2007年由David Cournapeau所执行的Google Summer of Code 计画。而2010年之后,则由法国国家资讯暨自动化研究院(INRIA, http://www.inria.fr) 继续主导及后续的支持及开发。近几年(2013-2015)则由 IN

  • 这份文件的目的是要提供 Python 之机器学习套件 scikit-learn (http://scikit-learn.org/) 的中文使用说明。一开始的主要目标是详细说明 scikit-learn 套件中的范例程式的使用流程以及相关函式的使用方法。目前使用版本为 scikit-learn version 0.19 以上

  • 问题内容: 哪些是将PDF文件转换为文本的最佳Python模块? 问题答案:

  • Scikit-learn 套件的安装 目前Scikit-learn同时支持Python 2及 3,安装的方式也非常多种。对于初学者,最建议的方式是直接下载 Anaconda Python (https://www.continuum.io/downloads)。同时支持 Windows / OSX/ Linux 等作业系统。相关数据分析套件如Scipy, Numpy, 及图形绘制库 matplot

  • 本文向大家介绍python机器学习库xgboost的使用,包括了python机器学习库xgboost的使用的使用技巧和注意事项,需要的朋友参考一下 1.数据读取 利用原生xgboost库读取libsvm数据 使用sklearn读取libsvm数据 使用pandas读取完数据后在转化为标准形式 2.模型训练过程 1.未调参基线模型 使用xgboost原生库进行训练 使用XGBClassifier进行

  • 从sklearn加载流行数字数据集。数据集模块,并将其分配给可变数字。 分割数字。将数据分为两组,分别命名为X_train和X_test。还有,分割数字。目标分为两组Y_训练和Y_测试。 提示:使用sklearn中的训练测试分割方法。模型选择;将随机_状态设置为30;并进行分层抽样。使用默认参数,从X_序列集和Y_序列标签构建SVM分类器。将模型命名为svm_clf。 在测试数据集上评估模型的准确