我有一个 csv 文件和 v3 列,但该列有一些“nan”行。 我怎样才能排除行。
dataset = pd.read_csv('mypath')
enc = LabelEncoder()
enc.fit(dataset['v3'])
print('fitting')
dataset['v3'] = enc.transform(dataset['v3'])
print('transforming')
print(dataset['v3'])
print('end')
编辑:V3 列有 A、C、B、A、C、D、、、A、S 之类的,我想将其转换为 (1,2,3,1,2,4,, ,1,7)
最佳答案
使用 ~isnull() 屏蔽 nan 值:
mask = ~dataset['v3'].isnull()
dataset['v3'][mask] = enc.fit_transform(dataset['v3'][mask])
另一种方法是使用 pandas.factorize 函数,它会自动处理 nans(将它们赋值 -1):
dataset['v3'] = dataset['v3'].factorize()[0]
关于 python - TypeError : unorderable types: str() > float(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35310710/