Вы не можете использовать созданную вами функцию, чтобы делать то, что вы хотите. Например, каждый раз, когда вы делаете df['SPECIALUSER']=1
, он присваивает 1 целому столбцу, а не только строке, которую вы считаете целью. Чтобы назначить каждое значение правильной строке, вы должны назначать значения для каждого столбца отдельно:
df['SPECIALUSER'] = np.where(df['column3'] >= 1000, 1, 0)
df['NORMALUSER'] = np.where((df['column3'] - 1000) >= 512, 1, 0)
...
Я не совсем понял логику, которую вы используете для назначения 1 и 0, но если вы исправите это и повторите из того, что я написал выше для всех нужных вам столбцов, вы сможете получить желаемый результат.
Оказывается, что, по крайней мере, с PaymentExpress, они автоматически делают действие авторизации как часть их процесса хранения карты. Если авторизация перестанет работать, то она просто не сохранит карту, возвращая "НЕДОПУСТИМУЮ КАРТУ" вместо этого. Это замечено в их веб-приложении поиска транзакции - при хранении карт 1,00$ авторизовываются на карте и делаются недействительным автоматически неделю спустя.
Некоторые процессоры карты отметят транзакцию как это как потенциальное мошенничество. Им не нравится видеть маленькие тестовые транзакции, сопровождаемые большими транзакциями. American Express в особенности несколько агрессивна в этом отношении, поскольку они будут склонны уменьшать транзакцию, когда Вы возвратитесь и пробуете за реальную сумму.
Если Вы планируете обвинение клиента для суммы x
, затем необходимо авторизовать его для суммы x
проверить карту. Затем можно использовать предыдущую авторизацию и сделать получение или сообщение силы для завершения заряда. Таким образом, клиент будет только когда-либо видеть, что правильная сумма ожидает и обоснованный на их операторе.