如何选择并替换列中相似的出现情况

我正在为一个课程的机器学习项目工作。目前我在清理数据时遇到一个问题。我有一个列(被识别为dtype object类型),这个列包含关于酒店某一方面的评级。当我检查这个列的值及其出现的频率时,我注意到其中有一些错误的值(如你下面所见,有些行不是评级,而是日期)

rating       value_counts()      100           52798            22997            17299            16396            15095            12793            10090             9494             9380             6592             5591             3988             3589             3287             3185             2586             1784             1260             1283              870              573              582              478              367              32018-11-11      320              281              22018-11-03      240              279              275              22018-10-26      22               12018-08-30      12018-09-03      12015-09-05      155              12018-10-12      12018-05-11      12018-11-14      12018-09-15      12018-04-07      12018-08-16      171              12018-09-18      12018-11-05      12018-02-04      1NaN             1 

我想做的是将所有看起来像日期的值替换为NaN,以便之后可以用合适的值填充它们。除了逐个选择不同的日期并用NaN替换之外,有没有更好的方法来做这件事?有没有办法选择相似的值(在这种情况下,所有以相同方式开始的日期,2018年)并一次性替换它们?

感谢你花时间阅读这篇文章!!


回答:

有几种方法可以清理这些数据。

选项1:评级列是object类型,通过搜索包含’-‘的字符串并替换为np.nan

df.loc[df['rating'].str.contains('-', na = False), 'rating'] = np.nan

选项2:将列转换为数值类型,这将强制日期转换为NaN。

df['rating'] = pd.to_numeric(df['rating'], errors = 'coerce')

Related Posts

如何对SVC进行超参数调优?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

如何在初始训练后向模型添加训练数据?

我想在我的scikit-learn模型已经训练完成后再…

使用Google Cloud Function并行运行带有不同用户参数的相同训练作业

我正在寻找一种方法来并行运行带有不同用户参数的相同训练…

加载Keras模型,TypeError: ‘module’ object is not callable

我已经在StackOverflow上搜索并阅读了文档,…

在计算KNN填补方法中特定列中NaN值的”距离平均值”时

当我从头开始实现KNN填补方法来处理缺失数据时,我遇到…

使用巨大的S3 CSV文件或直接从预处理的关系型或NoSQL数据库获取数据的机器学习训练/测试工作

已关闭。此问题需要更多细节或更清晰的说明。目前不接受回…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注