如何只为列中的特定值生成虚拟变量?

2024-05-23 14:01:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个pandas dataframe列,其中填充了100个国家的国家代码。我想用这些数据进行回归,但我只想为数据集中的特定国家创建虚拟变量。在

我以为这会奏效:

dummies = pd.get_dummies(df.CountryCode, prefix='cc_')
df_and_dummies = pd.concat([df,dummies[dummies['cc_US', 'cc_GB']]], axis=1)
df_and_dummies

但它给了我一个错误:

KeyError: ('cc_US', 'cc_GB')

我的数据帧当前看起来像:

^{pr2}$

no dummies

但我希望它看起来像这样:

with dummy variables

有没有一种简单的方法来指定要包含在get_dummies方法中的值,还是有其他方法来标识特定的伪变量?在


Tags: and数据方法代码dataframepandasdfget
1条回答
网友
1楼 · 发布于 2024-05-23 14:01:57

假人是这样的:

In [25]: dummies
Out[25]:
   cc_RU  cc_UK  cc_US
0      0      1      0
1      0      0      1
2      1      0      0

要选择其中的某些列,可以在[]getitem中提供列名列表:

^{pr2}$

所以你实际上错过了一个[括号。
完整代码变成:

In [29]: pd.concat([df, dummies[['cc_US', 'cc_UK']]], axis=1)
Out[29]:
   A  B CountryCode  cc_US  cc_UK
0  a  b          UK      0      1
1  b  a          US      1      0
2  a  c          RU      0      0

相关问题 更多 >