跳转到内容

assign_unique_ids():分配唯一 ID

assign_unique_ids() 是一个辅助函数。要是你的数据集里没有 ID,它能给你的每条数据分配一个唯一的 ID 值。
建议你在创建 SequenceData 对象之前使用它,因为你的数据表需要有 ID 这一列后才能创建这个对象,开始真正的序列分析。

需要输入哪些参数?

参数名是否
必填
类型描述
dfDataFrame输入数据集,每行代表一个实体(例如一个人、一个案例等)
id_col_namestr新 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     FT

2. 自定义列的名字

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

作者

代码:梁彧祺

文档:梁彧祺

编辑:梁彧祺

翻译:杨子婷

Released under the BSD-3-Clause License.