从值列创建虚拟变量列

时间:2017-02-23 16:56:41

标签: python pandas dummy-variable

我知道Pandas有一个get_dummy函数,您可以使用该函数将分类变量转换为DataFrame中的虚拟变量。我想做的事情略有不同。

我有一个包含0.0到100.0之间百分比值的列。我需要将其转换为一个列为1的任何值> = 10.0和0的任何值< 10.0。有没有一种好方法可以在此处重新调整get_dummy或者我必须构建一个循环来执行此操作?

3 个答案:

答案 0 :(得分:2)

您可以直接将bool转换为int:

(df.column_of_interest >= 10).astype(int)

答案 1 :(得分:1)

我假设你在这里讨论pandas.get_dummies,我不认为这是一个用例。您正在尝试在布尔条件上设置两个值。一种方法是获取布尔值系列并使用

获取指标的整数表示
view.topAnchor.constraint(equalTo: contentView.topAnchor, constant: 18).isActive = true
view.bottomAnchor.constraint(equalTo: contentView.bottomAnchor, constant: -18).isActive = true
view.leftAnchor.constraint(equalTo: contentView.leftAnchor, constant: 18).isActive = true
view.rightAnchor.constraint(equalTo: contentView.rightAnchor, constant: -18).isActive = true

<强>演示

df['indicators'] = (df.percentages >= 10.).astype('int')

答案 2 :(得分:0)

假设您有一个数据框df,其中Perc列包含您的百分比:

import pandas as pd
pd.np.random.seed(111)

df = pd.DataFrame({"Perc": pd.np.random.uniform(1, 100, 20)})

现在,您可以使用lambda函数轻松地形成一个新列,该函数可以重新编码百分比,如下所示:

df["Category"] = df.Perc.apply(lambda x: 0 if x < 10.0 else 1)