<small id='Gtluh'></small><noframes id='Gtluh'>

  1. <tfoot id='Gtluh'></tfoot>
  2. <legend id='Gtluh'><style id='Gtluh'><dir id='Gtluh'><q id='Gtluh'></q></dir></style></legend>

    1. <i id='Gtluh'><tr id='Gtluh'><dt id='Gtluh'><q id='Gtluh'><span id='Gtluh'><b id='Gtluh'><form id='Gtluh'><ins id='Gtluh'></ins><ul id='Gtluh'></ul><sub id='Gtluh'></sub></form><legend id='Gtluh'></legend><bdo id='Gtluh'><pre id='Gtluh'><center id='Gtluh'></center></pre></bdo></b><th id='Gtluh'></th></span></q></dt></tr></i><div id='Gtluh'><tfoot id='Gtluh'></tfoot><dl id='Gtluh'><fieldset id='Gtluh'></fieldset></dl></div>
        <bdo id='Gtluh'></bdo><ul id='Gtluh'></ul>
    2. 如何在超大DF中根据姓名有效地为具有多个条目的个人分配唯一ID

      How to efficiently assign unique ID to individuals with multiple entries based on name in very large df(如何在超大DF中根据姓名有效地为具有多个条目的个人分配唯一ID)

        <tbody id='YrSNU'></tbody>

      <small id='YrSNU'></small><noframes id='YrSNU'>

        <bdo id='YrSNU'></bdo><ul id='YrSNU'></ul>
        • <legend id='YrSNU'><style id='YrSNU'><dir id='YrSNU'><q id='YrSNU'></q></dir></style></legend>

              <i id='YrSNU'><tr id='YrSNU'><dt id='YrSNU'><q id='YrSNU'><span id='YrSNU'><b id='YrSNU'><form id='YrSNU'><ins id='YrSNU'></ins><ul id='YrSNU'></ul><sub id='YrSNU'></sub></form><legend id='YrSNU'></legend><bdo id='YrSNU'><pre id='YrSNU'><center id='YrSNU'></center></pre></bdo></b><th id='YrSNU'></th></span></q></dt></tr></i><div id='YrSNU'><tfoot id='YrSNU'></tfoot><dl id='YrSNU'><fieldset id='YrSNU'></fieldset></dl></div>

              1. <tfoot id='YrSNU'></tfoot>
              2. 本文介绍了如何在超大DF中根据姓名有效地为具有多个条目的个人分配唯一ID的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                问题描述

                我想获取一个数据集,其中包含一组不同的唯一个体,每个个体都有多个条目,并为每个个体的所有条目分配一个惟一的ID。以下是df:

                的示例
                      FirstName LastName  id
                0     Tom       Jones     1
                1     Tom       Jones     1
                2     David     Smith     1
                3     Alex      Thompson  1
                4     Alex      Thompson  1
                

                因此,基本上我希望Tom Jones的所有条目id=1,David Smith的所有条目id=2,Alex Thompson的所有条目id=3,依此类推。

                所以我已经有了一个解决方案,那就是一个非常简单的python循环,它迭代两个值(一个用于id,一个用于索引),并根据它们是否与前一个人匹配来为其分配id:

                x = 1
                i = 1
                
                while i < len(df_test):
                    if (df_test.LastName[i] == df_test.LastName[i-1]) & 
                    (df_test.FirstName[i] == df_test.FirstName[i-1]):
                        df_test.loc[i, 'id'] = x
                        i = i+1
                    else:
                        x = x+1
                        df_test.loc[i, 'id'] = x
                        i = i+1
                

                我遇到的问题是DataFrame大约有900万个条目,所以使用该循环将花费大量时间来运行。有没有人能想出一种更有效的方法来做这件事呢?我一直在考虑将Groupby和多索引作为潜在的解决方案,但还没有完全找到合适的解决方案。

                推荐答案

                您可以连接姓氏和名字,将其转换为类别,然后获取代码。

                当然,多个同名人员具有相同的id

                df = df.assign(id=(df['LastName'] + '_' + df['FirstName']).astype('category').cat.codes)
                >>> df
                  FirstName  LastName  id
                0       Tom     Jones   0
                1       Tom     Jones   0
                2     David     Smith   1
                3      Alex  Thompson   2
                4      Alex  Thompson   2
                

                这篇关于如何在超大DF中根据姓名有效地为具有多个条目的个人分配唯一ID的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

                相关文档推荐

                Split a Pandas column of lists into multiple columns(将 Pandas 的列表列拆分为多列)
                How does the @property decorator work in Python?(@property 装饰器在 Python 中是如何工作的?)
                What is the difference between old style and new style classes in Python?(Python中的旧样式类和新样式类有什么区别?)
                How to break out of multiple loops?(如何打破多个循环?)
                How to put the legend out of the plot(如何将传说从情节中剔除)
                Why is the output of my function printing out quot;Nonequot;?(为什么我的函数输出打印出“无?)
                  <tfoot id='5hGlX'></tfoot>
                  1. <legend id='5hGlX'><style id='5hGlX'><dir id='5hGlX'><q id='5hGlX'></q></dir></style></legend>
                    <i id='5hGlX'><tr id='5hGlX'><dt id='5hGlX'><q id='5hGlX'><span id='5hGlX'><b id='5hGlX'><form id='5hGlX'><ins id='5hGlX'></ins><ul id='5hGlX'></ul><sub id='5hGlX'></sub></form><legend id='5hGlX'></legend><bdo id='5hGlX'><pre id='5hGlX'><center id='5hGlX'></center></pre></bdo></b><th id='5hGlX'></th></span></q></dt></tr></i><div id='5hGlX'><tfoot id='5hGlX'></tfoot><dl id='5hGlX'><fieldset id='5hGlX'></fieldset></dl></div>
                    • <bdo id='5hGlX'></bdo><ul id='5hGlX'></ul>

                        <small id='5hGlX'></small><noframes id='5hGlX'>

                            <tbody id='5hGlX'></tbody>