作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有 df:
domain orgid
csyunshu.com 108299
dshu.com 108299
bbbdshu.com 108299
cwakwakmrg.com 121303
ckonkatsunet.com 121303
我想添加一个新列,用每个 orgid 的数字 ID 替换域列:
domain orgid domainid
csyunshu.com 108299 1
dshu.com 108299 2
bbbdshu.com 108299 3
cwakwakmrg.com 121303 1
ckonkatsunet.com 121303 2
我已经尝试过这一行,但它没有给出我想要的结果:
df.groupby('orgid').count['domain'].reset_index()
有人可以帮忙吗?
最佳答案
您可以在 groupby
对象上调用 rank
并传递参数 method='first'
:
In [61]:
df['domainId'] = df.groupby('orgid')['orgid'].rank(method='first')
df
Out[61]:
domain orgid domainId
0 csyunshu.com 108299 1
1 dshu.com 108299 2
2 bbbdshu.com 108299 3
3 cwakwakmrg.com 121303 1
4 ckonkatsunet.com 121303 2
如果你想覆盖你可以做的列:
df['domain'] = df.groupby('orgid')['orgid'].rank(method='first')
关于 python Pandas : How can I group by and assign an id to all the items in a group?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36063251/
我是一名优秀的程序员,十分优秀!