【问题标题】:Vlookup in 2 specified columns [duplicate]2个指定列中的Vlookup [重复]
【发布时间】:2016-08-25 14:23:55
【问题描述】:

我有一个 hc 数据框,其中包含 2 个名为“上一个成本中心”和“当前成本中心”的列,并想添加两个名为“上一个/当前分组”的新列,其中应填充基于成本中心的分组在具有 2 个名为“CostCenter”和分组的列的映射表上。

在 excel 中,我将应用 vlookup 来根据每个列中的成本中心填充字段,并通过映射表对其进行映射。

我一直在使用合并功能,但无法让它工作。

如何将基于指定列的数据框合并到指定列中?

HC 列表:

    ID Cost Center Previous Cost Center Curent
0    1                    A                NaN
1    2                    B                  C
2    3                  NaN                NaN
3    4                    D                  D
4    5                    F                  F
5    6                  NaN                  A
6    7                    A                  B
7    8                  NaN                  B
8    9                    A                  C
9   10                    B                  D
10  11                    D                  F
11  12                    C                NaN

映射:

成本中心分组

0           A     XERX
1           B       ID
2           C     BLOC
3           D     KLRO
4           E      PPP
5           F      SDF
6           G        D

输出:

    ID Cost Center Previous Grouping Previous Cost Center Current Grouping Current
0    1                    A              XERX                 NaN              NaN
1    2                    B                ID                   C             BLOC
2    3                  NaN               NaN                 NaN              NaN
3    4                    D              KLRO                   D             KLRO
4    5                    F               SDF                   F              SDF
5    6                  NaN               NaN                   A             XERX
6    7                    A              XERX                   B               ID
7    8                  NaN               NaN                   B               ID
8    9                    A              XERX                   C             BLOC
9   10                    B                ID                   D             KLRO
10  11                    D              KLRO                   F              SDF
11  12                    C              BLOC                 NaN              NaN

【问题讨论】:

  • 请分享一些示例数据,以及所需的输出。
  • 添加了示例数据。
  • 我同意 EdChum 的评论。那里提供的解决方案也适用于这个问题。
  • 我刚试过这个,但现在应该只有 1358 行,但现在有 2408 行。似乎有些条目加倍了。

标签: python pandas vlookup


【解决方案1】:

假设HCgroupingDataFrames

解决方案

grouping = grouping.set_index('Cost Center')
HC['Grouping Current'] = HC['Cost Center Current'].apply(lambda x: grouping.ix[x])
HC['Grouping Previous'] = HC['Cost Center Previous'].apply(lambda x: grouping.ix[x])

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-03
    • 1970-01-01
    • 1970-01-01
    • 2013-04-03
    • 2014-08-05
    • 2014-02-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多