python - 给定列的唯一索引值的新列
问题描述
我有以下数据框:
data = dict(name=['a', 'a', 'a', 'b', 'b', 'c', 'd'])
df = pd.DataFrame(data=data, columns=data.keys())
如何创建一个新行,其值对应于 的唯一值name
?
我想要的是以下内容,请:
df.index = [1, 1, 1, 2, 2, 3, 4]
解决方案
列举三种方法
df.index=pd.factorize(df.name)[0]+1
df.index=df.name.astype('category').cat.codes+1
df.index=df.groupby('name').ngroup()+1
推荐阅读
- codeigniter - 组的 Codeigniter 自定义元描述
- spring-data-rest - Spring DB 实体:构造函数、equals 和 hashcode
- javascript - 通过迭代动态创建的表单行和输入进行减法
- redhat-datavirt - teiid有没有md5之类的hash函数?
- python - 比较两个数据框的列而不合并数据框
- c# - 如何在.net的数据表列中放置空格和特殊字符
- r - 在 ggplot2 中使用交互式标签制作 ggplot Choropleth 地图
- salesforce - Apex 测试类 - 简单插入
- c - fread 不会更改函数中的指针值(使用 feof 导致无限循环)-C
- python - 在单独的文件中记录 SQLAlchemy