【问题标题】:Pandas - get_dummies with value from another columnPandas - 具有来自另一列的值的 get_dummies
【发布时间】:2019-08-11 19:14:44
【问题描述】:

我有一个如下所示的数据框。 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

【问题讨论】:

    标签: python pandas one-hot-encoding


    【解决方案1】:

    分两步完成:

    dummies = pd.get_dummies(df['Mfr Number'])
    dummies.values[dummies != 0] = df['Quantity']
    

    【讨论】:

    • 我得到的输出是 int。但它不会转换为浮动。你也遇到过类似的情况吗?
    • 你想得到一个浮动? dataframe_obj.rename(lambda col: col.replace('.0', ''), axis='columns')这是你需要的吗?
    【解决方案2】:

    检查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】:
      df = pd.get_dummies(df, columns = ['Mfr Number'])
      for col in df.columns[2:]:
          df[col] = df[col]*df['quantity']
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-08-11
        • 2014-07-18
        • 1970-01-01
        • 2013-08-19
        • 1970-01-01
        • 2019-12-10
        • 2022-07-28
        • 2016-09-19
        相关资源
        最近更新 更多