映射2D阵列列

时间:2018-05-11 16:34:12

标签: python

我正在使用python中的神经网络。我有一个数据集,其中包括数字和分类变量。我的目标是将所有分类变量更改为一些数值。例如:

4   5   sep fri 94.3    85.1    692.3   15.9    17.7    37  3.6 0   0
5   4   mar fri 91.7    33.3    77.5    9   15.6    25  6.3 0   0
5   4   aug tue 88.8    147.3   614.5   9   17.3    43  4.5 0   0

正如您所看到的,月份名称和工作日名称是明确的。我想要的是:

4   5   9   5   94.3    85.1    692.3   15.9    17.7    37  3.6 0   0
5   4   3   5   91.7    33.3    77.5    9   15.6    25  6.3 0   0
5   4   8   2   88.8    147.3   614.5   9   17.3    43  4.5 0   0

为了完成任务,我想我必须使用map()函数。

month_mapping = {'jan': 1, 'feb': 2, 'mar': 3, 'apr': 4, 'may': 5,
                     'jun': 6, 'jul': 7, 'aug': 8, 'sep': 9, 'oct': 10, 'nov': 11, 'dec': 12}
day_mapping = {'mon': 1, 'tue': 2, 'wed': 3,
                   'thu': 4, 'fri': 5, 'sat': 6, 'sun': 7}

#month column of the array
print(data[:, 2])
test = map(month_mapping, data[:, 2])
print(test)

但在map()函数中,它崩溃了。我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

如果你必须使用map功能,你可以这样做:

months = ['jan', 'feb', 'marc']  #all months
mapped_month = list(map(lambda x: months.index(x), data[:, 2]))

同样地,你会对日子做同样的事情。