python - 在python中用相同的整数在不同的列中编码相同的值
问题描述
我有一个以字符串格式存储真/假值的数据框。数据框中的某些值为空。
我需要对这些数据进行编码,以便 TRUE/FALSE/null 值在每一列中使用相同的整数进行编码。
输入:
col1 col2 col3
True True False
True True True
null null True
我在用:
le = preprocessing.LabelEncoder()
df.apply(le.fit_transform)
输出:
2 1 0
2 1 1
1 0 1
但我希望输出为:
2 2 0
2 2 2
1 1 2
我该怎么做呢?
解决方案
为我工作创建一列DataFrame
:
df = df.stack(dropna=False).to_frame().apply(le.fit_transform)[0].unstack()
print (df)
col1 col2 col3
0 1 1 0
1 1 1 1
2 2 2 1
另一个想法是使用DataFrame.replace
with 'True'
instead True
,因为:
我有一个以字符串格式存储真/假值的数据框。
如果null
缺少值:
df = df.replace({'True':2, 'False':1, np.nan:0})
如果null
是字符串null
:
df = df.replace({'True':2, 'False':1, 'null':0})
print (df)
col1 col2 col3
0 2 2 1
1 2 2 2
2 0 0 2
推荐阅读
- python - 如何在 Python 中使用样式器将数据框值显示为条件彩色点?
- php - 上传文件的目录路径
- php - the_content()在single.php中不显示
- laravel - 如何从 example.com 移动到 app.example.com
- google-colaboratory - 尽管安装了软件包,但在导入“cpnet”时收到错误
- express - 快速模式下的 NestJS - 记录所有传入请求
- oracle - 我可以在 Oracle SQL Developer 的数据库中导出我的所有表定义吗
- spring-boot - 如何打印出在 Thymeleaf 中按字母分组的列表中的元素?
- javascript - jquery将一个html元素复制到一个字符串
- python - 如何让 RGB 值不超过 OpenCv 中的 255 限制?