如何在一个数据框中创建一个新列,根据前几列结果的百分比填充1或0?

我有一个包含144行和48列的数据框。数据框中包含来自不同预测模型的结果,值为1或0。我希望遍历每一行,计算该行中1的百分比,并添加一个新列,如果百分比大于80%则填充1,否则填充0。

我知道在Excel中可以使用ifcountif/count%来实现这个功能,但在当前环境中我不知道如何操作。希望我提供的信息足够,如果不够我深感歉意。非常感谢您的任何建议。


回答:

您可以使用以下代码计算每行中1的百分比:

df['percentage'] = df.mean(axis=1)

然后,您可以使用np.where来创建新的二进制列:

df['new'] = np.where(df['percentage'] > 0.8, 1, 0)

这与Excel中的=IF(条件,条件为真时的值,条件为假时的值)功能相同。

使用虚拟数据的示例:

import pandas as pdimport numpy as npdf = pd.DataFrame({'var1':[0,0,1],'var2':[0,1,1], 'var3':[1,1,1]})df['percentage'] = df.mean(axis=1)df['new'] = np.where(df['percentage'] > 0.8, 1, 0)print(df)

输出结果:

   var1  var2  var3  percentage  new0     0     0     1    0.333333    01     0     1     1    0.666667    02     1     1     1    1.000000    1

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中创建了一个多类分类项目。该项目可以对…

发表回复

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