【问题标题】:Mapping column value based on another column in python基于python中的另一列映射列值
【发布时间】:2018-11-06 18:20:51
【问题描述】:

我正在尝试更改列值取决于沿其行的另一列,然后使用 ADSL 列作为我的键将其合并到现有的 excel 文件中。

我有这样的数据:

ADSL     Status     Result
2/134    WO         No Server Answer
1/239    WO         Faulty
2/94     FA         Number
2/321    SP         Voltage

这是一个实际数据,Status 列有三个可能的值 [WO, FA, SP] 每个值都有等价的Result 值。

示例:

Status                  Equivalent Result Value

                        Battery Tone
                        Engage
  WO                    No Dial Tone
                        No Server Answer
                        No Voltage
                        Number

  SP                    Voltage

  FA                    Faulty
                        Vacant

现在实际上Status 列没有根据其等效的Result 值获得正确的值。 (见上面的数据)

我要做的是根据 Result 列中的等效值更正 status

在 python 中最简单或有效的方法是什么?我不是在看一个特定的图书馆。任何帮助将不胜感激。干杯!

【问题讨论】:

    标签: python pandas openpyxl xlsxwriter


    【解决方案1】:

    我相信需要map by Series:

    df2['Status'] = df2['Status'].map(df1.set_index('Result')['Status'])
    

    如果某些值不匹配,可以用原始的非NaNs 值替换:

    df2['Status'] = df2['Status'].map(df1.set_index('Result')['Status']).fillna(df2['Status'])
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-14
      • 1970-01-01
      • 2020-10-04
      • 1970-01-01
      • 2022-01-14
      • 1970-01-01
      相关资源
      最近更新 更多