Не изменяется результат при умножении float на float python pandas

Есть датафрейм (df), получаемый посредством выгрузки его в формате JSON из Binance API. Затем, я изменяю значения ячеек в столбце "unitPrice" на float при помощи Pandas. После этого, я пытаюсь увеличить значения каждой ячейки столбца "unitPrice" на 0.1%, однако это не срабатывает. Затем я выгружаю этот файл в .xlsx формат, с переименованием столбцов и удалением ненужных. Вопрос - почему не срабатывает увеличение значений ячеек в столбце "unitPrice"?

Прилагаю весь код:

    client = Client(api_key, secret_key)
try:
    response = client.c2c_trade_history("BUY")
    df = pd.json_normalize(response, "data")
    print(df["unitPrice"])
    df["unitPrice"] = df["unitPrice"].astype(float)
    df["unitPrice"] = df["unitPrice"] + (df["unitPrice"] // 100 * 0.1)
    df["orderStatus"] = "COMPLETED"
    df.rename(columns={
        "orderNumber": "Номер ордера",
        "advNo": "Номер объявления",
        "tradeType": "Тип ордера",
        "asset": "Покупаем",
        "fiat": "Продаем",
        "amount": "Куплено",
        "totalPrice": "Продано",
        "unitPrice": "Курс",
        "commission": "Комиссия"
        }, inplace=True)
    df.drop(columns=[
        "createTime",
        "advertisementRole", 
        "fiatSymbol", 
        "counterPartNickName",
        "orderStatus"
        ]).to_excel(
        "Результат.xlsx",
        sheet_name="Основной лист", 
        index="False"
        )
    print("Успех! Ваш файл был загружен!")
    print(df["Курс"])
except ClientError as error:
    logging.error(f"Найдена ошибка. Статус: {error.status_code}, Код: {error.error_code}, Сообщение: {error.error_message}")

Серия значений ДО увеличения на 0.1% (строка 5 - print):

0 39.43 1 39.43 2 39.35 3 39.32 4 39.3 5 39.3 6 39.3 7 39.3 8 39.37 9 39.37 10 39.37

Серия значений ПОСЛЕ увеличения на 0.1% (строка 32 - print):

0 39.43 1 39.43 2 39.35 3 39.32 4 39.3 5 39.3 6 39.3 7 39.3 8 39.37 9 39.37 10 39.37

P.S.: код успешно создаёт файл без каких-либо ошибок и я могу спокойно открыть Excel-таблицу, однако, значения unitPrice какими они были при выгрузке из API, такими они и остались после форматирования. Без изменений вовсе.


Ответы (1 шт):

Автор решения: strawdog

Числа в вашем df меньше 100, поэтому при целочисленном делении их на 100 вы получаете 0. который умножаете на 0.1 (снова получая 0) и прибавляете этот ноль к исходным данным

Попробуйте заменить свои

df["unitPrice"] = df["unitPrice"] + (df["unitPrice"] // 100 * 0.1)

на

df["unitPrice"] = df["unitPrice"]* 1.001
→ Ссылка