1

所以假设我有一个由 ndarrays 组成的简单矩阵(只是部分数据可能看起来的示例):

import numpy as np
a = np.asarray([['1.0', 'Miami'],
   ['2.0', 'Boston'],
   ['1.4', 'Miami']]) 

我想在这个复杂的数据集中进行数据分析 ;) - 我想将“迈阿密”转换为 0,将波士顿转换为 1,以便使用真正花哨的 ML 算法。什么是在 Python 中完成此任务的好方法。(我不是要求迭代和使用字典/ if 语句来替换条目的明显之一)但如果有更好的方法使用 Numpy 或本机 Python 来做到这一点。

4

1 回答 1

2

pandas是一个很好的工具。
首先将数组转换为 DataFrame:

In [11]: import pandas as pd

In [12]: df = pd.DataFrame(a, columns=['value', 'city'])

然后替换city 列中的条目:

In [13]: df.city = df.city.replace({'Miami': 0, 'Boston': 1})

In [14]: df
Out[14]:
  value city
0   1.0    0
1   2.0    1
2   1.4    0
于 2013-06-16T19:27:32.440 回答