如何使用熊猫进行列值比较并根据比较后的列值创建新列?

2024-06-16 10:11:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我对Python和熊猫很陌生。我有下面的示例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

基本上,我想给activity列中的字符串赋值

因为我对熊猫很陌生,所以我来到这个论坛寻求帮助

谢谢你


Tags: csvnameid示例playabcdactivity
1条回答
网友
1楼 · 发布于 2024-06-16 10:11:41

您可以使用^{}

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到值

相关问题 更多 >