【问题标题】:Fill NAs values with combination of incremental number and column value使用增量数字和列值的组合填充 NAs 值
【发布时间】:2022-06-30 16:32:42
【问题描述】:

我有以下数据框:

        UNIQUE_IDENTIFIER   COUNTRY_CODE
        
0          1                    CZ
1         nan                   CZ
2          2                    SK
3          4                    AE
4        nan                    DK
5        nan                    CZ
6        nan                    DK
7        nan                    ES

对于“UNIQUE_IDENTIFIER”列中的所有空白值,我想创建一个采用“COUNTRY_CODE”的值,并为每个不同添加从 1 开始的递增数字(数字和国家代码之间有一个空格)国家代码。所以最终的数据框是这样的:

        UNIQUE_IDENTIFIER   COUNTRY_CODE
        
0          1                    CZ
1         CZ 1                  CZ
2          2                    SK
3          4                    AE
4        DK 1                   DK
5        CZ 2                   CZ
6        DK 2                   DK
7        ES 1                   ES

最好的方法是什么?

谢谢!

【问题讨论】:

    标签: python pandas dataframe lambda increment


    【解决方案1】:

    用途:

    m = df.UNIQUE_IDENTIFIER.isna()
    df.loc[m, 'UNIQUE_IDENTIFIER'] = df.COUNTRY_CODE +' ' +df[m].groupby('COUNTRY_CODE').cumcount().add(1).astype(str)
    print (df)
      UNIQUE_IDENTIFIER COUNTRY_CODE
    0               1.0           CZ
    1              CZ 1           CZ
    2               2.0           SK
    3               4.0           AE
    4              DK 1           DK
    5              CZ 2           CZ
    6              DK 2           DK
    7              ES 1           ES
    

    【讨论】:

      猜你喜欢
      • 2023-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多