python - 与 sklearn 编码器链接时,python pandas astype 无法正常工作
问题描述
熊猫 == 1.2.3
sklearn == 0.24.2
尝试使用 Ordinal Encoder 将多个二进制列转换为 1/0,然后将它们的数据类型更改为“int8”
MRE:
df = pd.DataFrame({"A":["True", "False", "True", "False", "False"],
"B":["Yes", "No", "Yes", "Yes", "Yes"],
"C":[1, 4, 1, 4, 4]})
运行以下将数据类型转换为“integer64”并将“float16”转换为“float64”。
bin_cols = ["A", "B", "C"]
df[bin_cols] = OrdinalEncoder() \
.fit_transform(df[bin_cols]) \
.astype('int8')
df.dtypes
>>> A int64
>>> B int64
>>> C int64
如果我拿出来表演
df[bin_cols].astype('int8').dtypes
>>> A int8
>>> B int8
>>> C int8
它正确转换为“integer8”
可能是什么问题呢?
编辑:如果我运行第二个代码块两次它可以工作......
解决方案
推荐阅读
- python - Wordcloud 使用短语而不是单个单词
- reactjs - signInWithEmailAndPassword 失败:第二个参数“密码”必须是一个有效的字符串与反应
- google-cloud-platform - 管理员或 GCP 中的用户登录时出现 Windows 2012 R2 RDS 黑屏
- reactjs - react-router中的Link和`window.history.pushState()`有什么区别?
- jquery - 如何在 Asp.net core mvc 视图中检查带有枚举值的单选按钮
- rabbitmq - RabbitMQ 在节点崩溃后删除损坏的队列
- python - 如何在python中继承类复杂?
- openlayers - OpenLayers 捕捉指针移动到特征
- ssl - 有效的 SSL 证书,本地主机
- c++ - 这是二叉搜索树吗?HackerRank 问题