我有一个包含144行和48列的数据框。数据框中包含来自不同预测模型的结果,值为1或0。我希望遍历每一行,计算该行中1的百分比,并添加一个新列,如果百分比大于80%则填充1,否则填充0。
我知道在Excel中可以使用if和countif/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