【问题标题】:Pandas - find value in column based on values from another column and replace date in different columnPandas - 根据另一列的值在列中查找值并替换不同列中的日期
【发布时间】:2021-07-20 18:55:46
【问题描述】:

我有一个如下所示的 df:

ID    Name      Supervisor         SupervisorID
1     X         Y                  
2     Y         C                  
3     Z         Y                  
4     C         Y                  
5     V         X                  

我需要的是找到 SupervisorID。我可以通过在 Name 列中检查来找到他的 ID,我会看到他的 ID,所以如果主管是 Y,那么我会在 Name 列中看到 Y,所以他的 ID id 为 2。DF 应该如下所示:

ID    Name      Supervisor         SupervisorID
1     X         Y                  2
2     Y         C                  4
3     Z         Y                  2
4     C         Y                  2
5     V         X                  1

你知道如何解决这个问题吗?

感谢您的帮助和问候

【问题讨论】:

    标签: pandas dataframe if-statement replace find


    【解决方案1】:

    Series.mapDataFrame.drop_duplicates 一起使用以获得唯一的Names,因为在真实数据中重复:

    df['SupervisorID']=df['Supervisor'].map(df.drop_duplicates('Name').set_index('Name')['ID'])
    print (df)
       ID Name Supervisor  SupervisorID
    0   1    X          Y             2
    1   2    Y          C             4
    2   3    Z          Y             2
    3   4    C          Y             2
    4   5    V          X             1
    

    【讨论】:

    • 谢谢,但我收到了错误:“InvalidIndexError: Reindexing only valid with unique value Index objects”
    猜你喜欢
    • 1970-01-01
    • 2016-11-22
    • 2022-09-23
    • 2022-06-13
    • 1970-01-01
    • 2021-11-12
    • 1970-01-01
    • 2015-06-30
    • 1970-01-01
    相关资源
    最近更新 更多