Лучший подход для создания обратных данных для прогнозируемой переменной logisti c regression '(желаемая цель) - PullRequest
0 голосов
/ 07 марта 2020

Я пытаюсь придумать быстрый способ создания «инверсии» с целью обучения регрессионной модели логистики c. У меня есть транзакции продаж (т. Е. isSold = 1 ), и я хочу создать строки данных для эквивалента isSold = 0 для 2-й даты (поскольку, очевидно, у меня нет данных для этого) ... Используя приведенный ниже пример, мне нужно создать 4 новые строки для 'ABC1', 'DEF2', 'GHI3', 'JKL4' с нижеприведенным (Обратите внимание, что MNO5 не требуется, поскольку есть уже доступны данные за 2/2/20).

students = [ ('ABC1', '1/1/20', '5.00' , '2' , '1') ,
             ('DEF2', '1/1/20', '4.95' , '1' , '1' ) ,
             ('GHI3', '1/1/20', '6.50' , '1' , '1' ) ,
             ('JKL4', '1/1/20', '7.10' , '1' , '1' ) ,
             ('MNO5', '1/1/20', '8.45' , '2' , '1') ,
             ('MNO5', '2/1/20', '8.45' , '1' , '1')  ]


df = pd.DataFrame(students, columns = ['Item' , 'Date', 'UnitPrice' ,'Quantity', 'isSold'], index=['a', 'b', 'c' , 'd' , 'e' , 'f'])

Любые / все идеи приветствуются - спасибо.

1 Ответ

0 голосов
/ 08 марта 2020

Так что после сна я придумал следующее ....

dts = ['1/1/20','2/1/20']
codes = ['ABC1','DEF2','GHI3','JKL4','MNO5']

for i in codes:
    for j in dts:
        new_row = {
          "Item": i ,  
          "Date": j,
          "UnitPrice": 0,
          "Quantity": 0,
          "isSold": 0
        }
        df = df.append(new_row, ignore_index=True)

df = df.drop_duplicates(subset=['Item','Date'], keep='first')

Любые улучшения или отзывы приветствуются!

...