代码之家  ›  专栏  ›  技术社区  ›  Chris Macaluso

熊猫-从另一列中获取具有值的虚拟对象

  •  0
  • Chris Macaluso  · 技术社区  · 7 年前

    我有一个如下的数据帧。列 Mfr Number get_dummies 或者对它进行一个热编码,但是如果新列来自该行,则不使用1填充新列,而是希望它填充 quantity 列。所有其他新的“傻瓜”在那一行应该保持0。这可能吗?

        Datetime            Mfr Number                quantity
    0   2016-03-15 07:02:00 MWS0460MB                 1
    1   2016-03-15 07:03:00 TM-120-6X                 3
    2   2016-03-15 08:33:00 40.50699.0095             5
    3   2016-03-15 08:42:00 40.50699.0100             1
    4   2016-03-15 08:46:00 CXS-04T098-00-0703R-1025  10
    
    2 回复  |  直到 7 年前
        1
  •  7
  •   gmds    7 年前

    分两步进行:

    dummies = pd.get_dummies(df['Mfr Number'])
    dummies.values[dummies != 0] = df['Quantity']
    
        2
  •  2
  •   BENY    7 年前

    核对 str.get_dummies mul

    df.Number.str.get_dummies().mul(df.quantity,0)
       40.50699.0095  40.50699.0100    ...      MWS0460MB  TM-120-6X
    0              0              0    ...              1          0
    1              0              0    ...              0          3
    2              5              0    ...              0          0
    3              0              1    ...              0          0
    4              0              0    ...              0          0
    [5 rows x 5 columns]
    
        3
  •  0
  •   Alexandr Kosolapov    7 年前
    df = pd.get_dummies(df, columns = ['Mfr Number'])
    for col in df.columns[2:]:
        df[col] = df[col]*df['quantity']