pd.get_dummies сохраняет только имя фиктивного значения как имя фиктивного столбца - PullRequest
0 голосов
/ 26 мая 2020

Я пытаюсь сделать pd.get_dummies и объединить его обратно в данные. Все прошло хорошо, но я хотел бы вернуть только имена фиктивных значений в качестве имени фиктивного столбца. У меня действительно большая рамка. Есть ли способ решить эту проблему вместо переименования столбцов? Любая поддержка приветствуется!

Dataframe

Number   Fruit
  One    Apple
  Two    Orange
  Three  Banana
  Four   Lemon

Код

dum = pd.get_dummies(df, columns=['Fruit'])
df = pd.concat([df, dum], axis=1)
df

Текущий выход

Number   Fruit   Fruit_Apple   Fruit_Orange   Fruit_Banana   Fruit_Lemon
  One    Apple        1             0              0              0
  Two    Orange       0             1              0              0
  Three  Banana       0             0              1              0
  Four   Lemon        0             0              0              1

Желаемый выход

Number   Fruit      Apple         Orange         Banana         Lemon
  One    Apple        1             0              0              0
  Two    Orange       0             1              0              0
  Three  Banana       0             0              1              0
  Four   Lemon        0             0              0              1

1 Ответ

0 голосов
/ 14 июля 2020

Давайте воспользуемся некоторыми параметрами в pd.get_dummies, чтобы исключить префикс и разделитель префикса:

dum = pd.get_dummies(df, columns=['Fruit'], prefix='', prefix_sep='')
pd.concat([df, dum], axis=1)

Вывод:

  Number   Fruit Number  Apple  Banana  Lemon  Orange
0    One   Apple    One      1       0      0       0
1    Two  Orange    Two      0       0      0       1
2  Three  Banana  Three      0       1      0       0
3   Four   Lemon   Four      0       0      1       0
...