1

100 か国の国コードで満たされた pandas データフレーム列があります。これらを使用して回帰を実行したいのですが、データセット内の特定の国に対してのみダミー変数を作成したいと考えています。

私はこれがうまくいくと思った:

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')

私のデータフレームは現在次のようになっています。

dframe = pd.DataFrame({'A': ['a', 'b', 'a'], 'B': ['b', 'a', 'c'],
                'CountryCode': ['UK', 'US', 'RU']})
dframe

ダミーなし

しかし、私はそれを次のようにしたい:

ダミー変数付き

メソッドに含める値を指定する簡単な方法はありますかget_dummies、または特定のダミー変数を識別する別の方法はありますか?

4

1 に答える 1

1

ダミーは次のようになります。

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

この特定の列を選択するには、[] getitem 内で列名のリストを提供できます。

In [27]: dummies[['cc_US', 'cc_UK']]
Out[27]:
   cc_US  cc_UK
0      0      1
1      1      0
2      0      0

したがって、実際には [ ブラケットを逃しただけです。
完全なコードは次のようになります。

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
于 2015-10-01T22:23:36.633 に答える