我知道Pandas有一个get_dummy
函数,您可以使用该函数将分类变量转换为DataFrame中的虚拟变量。我想做的事情略有不同。
我有一个包含0.0到100.0之间百分比值的列。我需要将其转换为一个列为1的任何值> = 10.0和0的任何值< 10.0。有没有一种好方法可以在此处重新调整get_dummy
或者我必须构建一个循环来执行此操作?
答案 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)