【问题标题】:LabelEncoder for two DataFrames两个 DataFrame 的 LabelEncoder
【发布时间】:2020-08-18 07:36:03
【问题描述】:

我真的在为分类类型编码而苦苦挣扎。给定两个 DataFrames X_trainX_test 我正在尝试对所有邮政编码进行编码。对我来说最大的障碍是能够以相同的方式对 both 数据帧中的值(因为它们在某种程度上有所不同)进行编码,所以我想列出所有可能的邮政编码值,然后使用它来编码两个系列(作为 DataFrames 的一部分)。不幸的是,这不起作用,因为出现了错误AttributeError: 'numpy.ndarray' object has no attribute 'transform'。我的想法不多了。

X_train = X[['ticket_id','judgment_amount','zip_code']]
X_test = y[['ticket_id','judgment_amount','zip_code']]


Xtrain_zipcode =  X_train['zip_code'].dropna().unique().tolist()
Xtest_zipcode = X_test['zip_code'].dropna().unique().tolist()

zip_list = Xtrain_zip

for elem in Xtest_zipcode:
    if elem not in Xtrain_zipcode:
        zip_list.append(elem)

enc_zipc = LabelEncoder().fit(zip_list)
encoded = enc_zipc.transform(zip_list)
encoded.transform(X_train['zip_code'])

我也有read LabelEncoder 在处理作为输入的分类特征时是不可取的。你有什么建议?一键编码?

【问题讨论】:

    标签: pandas dataframe


    【解决方案1】:

    您是否尝试过连接训练和测试,然后将编码器安装到连接的 zip 上?

    X_train = X[['ticket_id','judgment_amount','zip_code']]
    X_test = y[['ticket_id','judgment_amount','zip_code']]
    X_train['zip_code'] = X_train['zip_code'].astype(str)
    X_test['zip_code'] = X_test['zip_code'].astype(str)
    
    concat = pd.concat([X_train, X_test], axis=0, ignore_index=True)
    
    enc_zipc = LabelEncoder()
    enc_zipc.fit(concat['zip_code'])
    
    X_train['zip_code'] = enc_zipc.transform(X_train['zip_code'])
    X_test['zip_code'] = enc_zipc.transform(X_test['zip_code'])
    

    【讨论】:

      猜你喜欢
      • 2016-12-18
      • 2021-01-21
      • 1970-01-01
      • 1970-01-01
      • 2016-10-24
      • 2020-05-03
      • 1970-01-01
      • 2022-08-12
      • 2013-03-03
      相关资源
      最近更新 更多