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

我正在为一个课程的机器学习项目工作。目前我在清理数据时遇到一个问题。我有一个列(被识别为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

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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