我有一个代表森林火灾的数据集。该数据集具有数字特征和分类特征。这些分类是日期和月份。我将这些分类值更改为数字,例如:
Jan -> 1
Feb -> 2
March ->3
.
.
Dec -> 12
和
Mon -> 1
Tue -> 2
.
.
Sun ->7
但使用这种方法并不正确。我应该使用假人来使其正确。
我的数据集的一小部分是:
7 5 mar fri 86.2 26.2 94.3 5.1 8.2 51 6.7 0
7 4 oct tue 90.6 35.4 669.1 6.7 18 33 0.9 0
7 4 oct sat 90.6 43.7 686.9 6.7 14.6 33 1.3 0
我想我必须把它改成
7 5 [0,0,1,0,0,0,0,0,0,0,0,0] [0,0,0,0,1,0,0] 86.2 26.2 94.3 5.1 8.2 51 6.7 0
7 4 [0,0,0,0,0,0,0,0,0,1,0,0] [0,1,0,0,0,0,0] 90.6 35.4 669.1 6.7 18 33 0.9 0
7 4 [0,0,0,0,0,0,0,0,0,1,0,0] [0,0,0,0,0,1,0] 90.6 43.7 686.9 6.7 14.6 33 1.3 0
现在我做了什么:
data[:, 2] = pandas.get_dummies(data[:,2])
data[:, 3] = pandas.get_dummies(data[:,3])
这种方法并不令人满意。我写这篇文章时就知道了。
could not broadcast input array from shape (517,12) into shape (517)
如何将假人合并到我的numpy
阵列?
答案 0 :(得分:1)
比你尝试的更容易:
import pandas as pd
df = pd.read_clipboard()
df1 = pd.get_dummies(df)
df
Out[33]:
a b m d e f g h i j k l
0 7 5 mar fri 86.2 26.2 94.3 5.1 8.2 51 6.7 0
1 7 4 oct tue 90.6 35.4 669.1 6.7 18.0 33 0.9 0
2 7 4 oct sat 90.6 43.7 686.9 6.7 14.6 33 1.3 0
df1
Out[35]:
a b e f g h i j k l m_mar m_oct d_fri d_sat \
0 7 5 86.2 26.2 94.3 5.1 8.2 51 6.7 0 1 0 1 0
1 7 4 90.6 35.4 669.1 6.7 18.0 33 0.9 0 0 1 0 0
2 7 4 90.6 43.7 686.9 6.7 14.6 33 1.3 0 0 1 0 1
d_tue
0 0
1 1
2 0