gpt4 book ai didi

python - 根据列组合在数据框中创建唯一标识符

转载 作者:行者123 更新时间:2023-12-03 20:05:45 25 4
gpt4 key购买 nike

我有以下数据框:

    id  Lat         Lon         Year    Area    State
50319 -36.0629 -62.3423 2019 90 Iowa
18873 -36.0629 -62.3423 2017 90 Iowa
18876 -36.0754 -62.327 2017 124 Illinois
18878 -36.0688 -62.3353 2017 138 Kansas

我想创建一个新列,该列根据列 Lat 是否分配唯一标识符, LonArea具有相同的值。例如。在这种情况下,第 1 行和第 2 行在这些列中具有相同的值,并且将被赋予相同的唯一标识符 0_Iowa哪里 Iowa来自 State柱子。我尝试使用 for 循环,但有没有更 Pythonic 的方法来做到这一点?
id       Lat         Lon       Year    Area State   unique_id
50319 -36.0629 -62.3423 2019 90 Iowa 0_Iowa
18873 -36.0629 -62.3423 2017 90 Iowa 0_Iowa
18876 -36.0754 -62.327 2017 124 Illinois 1_Illinois
18878 -36.0688 -62.3353 2017 138 Kansas 2_Kansas

最佳答案

我会去 groupby.ngroup 设置 sort=False用于分组和 str.cat State 连接设置分隔符:

df['Sate'] = (df.groupby(['Lat','Lon','Area'], sort=False)
.ngroup()
.astype(str)
.str.cat(df.State, sep='_'))
print(df)

id Lat Lon Year Area State Sate
0 50319 -36.0629 -62.3423 2019 90 Iowa 0_Iowa
1 18873 -36.0629 -62.3423 2017 90 Iowa 0_Iowa
2 18876 -36.0754 -62.3270 2017 124 Illinois 1_Illinois
3 18878 -36.0688 -62.3353 2017 138 Kansas 2_Kansas
1

关于python - 根据列组合在数据框中创建唯一标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62396518/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com