gpt4 book ai didi

pandas - 无法在具有某些 'nan' 值的列中使用 apply 函数

转载 作者:行者123 更新时间:2023-11-30 09:17:36 25 4
gpt4 key购买 nike

这是一个机器学习问题,在Python 3.0环境中。我一直在工作使用 Wines 数据集解决分类问题。我想对数据集中存在的特征“国家/地区”的值使用 LabelEncoder() 。由于有一些“国家”中的“nan”值,我试图仅对那些不是的值进行编码无效的。但是,我编写的代码:

import numpy as np
import pandas as pd
from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()

dataset = pd.read_csv('winemag-data-130k-v2.csv')

a = pd.Series(data = le.fit_transform(dataset[dataset.loc[:, 'country'].notnull()].loc[:,'country']))
dataset[dataset.loc[:, 'country'].notnull()].loc[:, 'country'].apply(lambda i: i, a)

然而,这总是会产生如下错误:

ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

有什么解决办法吗?

最佳答案

更新:我知道这是一个小黑客解决方案,但我认为它有效

dataset.loc[:, 'country'] =dataset.loc[:, 'country'].replace(le.classes_, le.transform(le.classes_))

旧答案如果我正确地假设您希望使用 LabelEncoder() 对您的国家/地区进行编码,那么最后一行的语法是不正确的,因为您试图使用 lambda 表达式错误地映射一个 Series。应该是

dataset.loc[:, 'country'] = a[dataset.loc[:, 'country'].notnull()]

enter image description here

关于pandas - 无法在具有某些 'nan' 值的列中使用 apply 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51229471/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com