【问题标题】:Looking up a value in a employee/manager hierarchy using pandas使用 pandas 在员工/经理层次结构中查找值
【发布时间】:2021-05-14 10:55:23
【问题描述】:

我有一种情况,我想在经理各自的直接下属中查找当前附加到经理的值。经理级别的数据集如下所示:

MGR_ID        MGR_Value
1             Complete
2             InComplete

员工/经理层次结构如下所示:

EE_ID       MGR_ID
3           1
4           1
5           1
6           2
7           2

现在以下数据集具有经理/员工层次结构,我想在那里创建一个新列,我可以在其中存储与员工经理相同的值。所以输出数据应该是这样的:

EE_ID       MGR_ID      MGR_Value      EE_Value
3           1           Complete       Complete
4           1           Complete       Complete
5           1           Complete       Complete
6           2           InComplete     InComplete
7           2           InComplete     InComplete

我应该如何在 pandas 中实现这一点?

【问题讨论】:

  • EE_ID 来自哪里?
  • 来自我的原始数据。所以我已经有了原始数据,其中每个员工都有一个层次结构,关于他们在哪个经理下汇总
  • 好的。如果对输入没有足够的了解,很难帮助您实现输出数据。就目前而言,不可能从单个经理的数据集中进行输出。您能否更新您的问题以概述构建输出所需的完整输入?
  • 也更新了..

标签: python-3.x pandas dataframe lookup


【解决方案1】:

先尝试合并,然后复制列:

import pandas as pd

df_manage = pd.DataFrame({
    'MGR_ID': {0: 1, 1: 2},
    'MGR_Value': {0: 'Complete', 1: 'InComplete'}
})
df_hierarchy = pd.DataFrame({
    'EE_ID': {0: 3, 1: 4, 2: 5, 3: 6, 4: 7},
    'MGR_ID': {0: 1, 1: 1, 2: 1, 3: 2, 4: 2}
})

# Merge DataFrames Together
new_df = df_hierarchy.merge(df_manage, on='MGR_ID')
# Duplicate Column
new_df["EE_Value"] = new_df['MGR_Value']

# For Display
print(new_df.to_string())
   EE_ID  MGR_ID   MGR_Value    EE_Value
0      3       1    Complete    Complete
1      4       1    Complete    Complete
2      5       1    Complete    Complete
3      6       2  InComplete  InComplete
4      7       2  InComplete  InComplete

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-29
    • 1970-01-01
    • 1970-01-01
    • 2022-11-16
    • 2013-01-21
    • 2022-11-10
    相关资源
    最近更新 更多