python - sklearn SimpelImputer 系统错误:返回带有错误集的结果
问题描述
我在管道中输入缺失值。
在第一步中,我使用以下变量对变量进行分类:
df_listings['original.listing.rooms.bedrooms.count'] = pd.cut(df_listings['original.listing.rooms.bedrooms.count'], bins = [1,2,3,4,5,6,10,50])
df_listings = df_listings.fillna(np.nan)
在第二步中,我想使用
si = SimpleImputer(missing_values=np.nan,strategy="most_frequent")
si.fit_transform(df_listings[['original.listing.rooms.bedrooms.count']])
即使我使用其他变量遵循此流程,但在这里我收到以下错误:
TypeError: unsupported operand type(s) for +: 'pandas._libs.interval.Interval' and 'pandas._libs.interval.Interval'
The above exception was the direct cause of the following exception:
...
SystemError: <built-in function _abc_instancecheck> returned a result with an error set
我不明白我收到此错误的原因。对于其他变量,我可以使用 pandas.Interval,只是这个变量会导致问题。
解决方案
当我们处理分类数据时,将 .astype(str) 添加到您的 pd.cut 就可以了。
df_listings['original.listing.rooms.bedrooms.count'] = pd.cut(df_listings['original.listing.rooms.bedrooms.count'], bins = [1,2,3,4,5,6,10,50]).astype(str)
推荐阅读
- docker - 未找到 persistentvolumeclaim "esdata1" 或 pod 未绑定 PersistentVolumeClaims
- r - 基于泰勒级数的对数似然二次近似的等高线图
- r - 用其他列的值填充 na
- performance - Flutter Sectioned GridView - 标题/类别/组
- php - 使用 php 在 redis 中进行会话处理
- stream - 流式传输:VM 冻结大文件
- amazon-web-services - AWS,SQS,计算 10 条消息的 visabilityTimeout
- java - 如何按字典顺序排列子字符串
- python - 在 Elastic Beanstalk 上发布时如何保留图像文件夹?
- statistics - 时间序列中的漂移和趋势有什么区别?