熊猫-带有另一列中的值的get_dummies

时间:2019-03-20 23:56:46

标签: python pandas one-hot-encoding

我有一个如下数据框。列Mfr Number是分类数据类型。我想对其执行get_dummies或一种热编码,但是我希望它填充quantity中的值,而不是用新行填充1。柱。所有其他新的“假人”应在该行上保持为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

3 个答案:

答案 0 :(得分:2)

分两步进行:

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

答案 1 :(得分:1)

检查str.get_dummiesmul

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]

答案 2 :(得分:0)

df = pd.get_dummies(df, columns = ['Mfr Number'])
for col in df.columns[2:]:
    df[col] = df[col]*df['quantity']