assign_unique_ids():分配唯一 ID
assign_unique_ids() 是一个辅助函数。要是你的数据集里没有 ID,它能给你的每条数据分配一个唯一的 ID 值。
建议你在创建 SequenceData 对象之前使用它,因为你的数据表需要有 ID 这一列后才能创建这个对象,开始真正的序列分析。
需要输入哪些参数?
| 参数名 | 是否 必填 | 类型 | 描述 |
|---|---|---|---|
df | ✓ | DataFrame | 输入数据集,每行代表一个实体(例如一个人、一个案例等) |
id_col_name | ✗ | str | 新 ID 列的名称,默认值为 "Entity ID" |
这个函数会做什么?
- 会创建一个新列,并且把新列放在数据表的首列位置处;
- 会给每一行赋予一个独一无二的整数值,作为它的序列号。序列号从 0 开始,一直编到总行数减 1 的数(n-1);
- 要是数据里已经有同名的列,函数会直接报错。这可以帮助你避免不小心把原来的数据覆盖掉的问题;
- 最后,函数会给你一个带有新 ID 列的数据集副本,也就是说,你原来的数据不会有任何改动。
这个函数有哪些特点?
- 自动生成 ID:你不需要手动给每一行的数据编写 ID,直接解放双手;
- 防错设计:要是数据表里已经有同名的列了,可以避免覆盖掉原来同名的列;
- 支持自定义名称:你可以通过
id_col_name参数来修改 ID 列的名字; - 对新手友好:能保证每条数据总有一个唯一的标识,特别适合在创建
SequenceData前用它对数据进行预处理工作。
示例
1. 给没有 ID 值的数据集加上 ID 值
python
import pandas as pd
data = pd.DataFrame({
"Y1": ["EDU", "EDU", "FT"],
"Y2": ["EDU", "UNEMP", "FT"]
})
df_with_ids = assign_unique_ids(data)
print(df_with_ids)输出结果:
Entity ID Y1 Y2
0 0 EDU EDU
1 1 EDU UNEMP
2 2 FT FT2. 自定义列的名字
python
df_with_ids = assign_unique_ids(data, id_col_name="Person")
print(df_with_ids)输出结果:
Person Y1 Y2
0 0 EDU EDU
1 1 EDU UNEMP
2 2 FT FT作者
代码:梁彧祺
文档:梁彧祺
编辑:梁彧祺
翻译:杨子婷