使用panda比较列值并根据比较列中的值创建列?

时间:2015-12-11 22:17:31

标签: python pandas

我对python和pandas很新。我有以下示例CSV作为输入。

ID Name Activity 
1   AB    Play
2   AD    Hurt
3   cd    Polite
4   CA    Play

我想将其转换为

ID Name Activity NumActivity
1   AB    Play     1
2   AD    Hurt     2
3   cd    Polite   3
4   CA    Play     1

所以基本上,我想给活动列中的字符串赋予数值。

由于我对熊猫很新,我正在接近这个论坛寻求帮助。

感谢,

1 个答案:

答案 0 :(得分:0)

您可以使用factorize

In [6]:
df['NumActivity'] = pd.factorize(df['Activity'])[0] +1
df

Out[6]:
   ID Name Activity  NumActivity
0   1   AB     Play            1
1   2   AD     Hurt            2
2   3   cd   Polite            3
3   4   CA     Play            1

这里factorize返回一个包含数组对的元组:

In [8]:
pd.factorize(df['Activity'])

Out[8]:
(array([0, 1, 2, 0]), Index(['Play', 'Hurt', 'Polite'], dtype='object'))

因此,我们使用[0]索引第一个元素,并查看您希望索引从1我们+1开始到值。