【问题标题】:Map dataframe values to index of a list将数据框值映射到列表的索引
【发布时间】:2020-06-21 00:04:27
【问题描述】:

我已经使用此代码分解了我以前的数据帧

df['name'], mapping = df['name'].factorize()

现在我正在尝试使用变量映射为我的新数据框获取相同的分解值

映射

Index(['Ranny','Bob','Timmy','Lisa'],
  dtype='object')

我的新数据框

╔════════════════╗
║ Name    Apples ║
╠════════════════╣
║ Lisa      5    ║
║ Timmy     3    ║  
║ Lisa      2    ║
║ Bob       1    ║
╚════════════════╝

将列名映射到列表后我想要的数据框

╔════════════════╗
║ Name    Apples ║
╠════════════════╣
║ 3         5    ║
║ 2         3    ║  
║ 3         2    ║
║ 1         1    ║
╚════════════════╝

我不知道该怎么做。我尝试了一个循环,但是当数据集很大时它需要太多时间。有没有有效的方法来做到这一点?

【问题讨论】:

    标签: python pandas dataframe mapping


    【解决方案1】:

    如果我理解正确,你可以在这里使用pd.Index.get_Indexer

    df2['Name'] = mapping.get_indexer(df2['Name'])
    print(df)
    

       Name  Apples
    0     3       5
    1     2       3
    2     3       2
    3     1       1
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-08-21
      • 2016-06-04
      • 1970-01-01
      • 2020-08-26
      • 1970-01-01
      • 2019-12-04
      • 1970-01-01
      相关资源
      最近更新 更多