Подтвердить что ты не робот

Возможно ли заставить pandas не преобразовывать тип данных при использовании DataFrame.replace

Вот рабочий пример:

df = pd.DataFrame({'A': [-39882300000000000000]}, dtype='object')

df.replace({',': '.'}) вызывает OverflowError, потому что где-то в коде флаг convert установлен в значение True. Я не уверен, но, вероятно, потому, что pandas выводит, что он содержит только числа.

Я прочитал данные из книги Excel, и я хочу предотвратить это преобразование при использовании df.replace. Есть ли способ сделать это?

4b9b3361

Ответ 1

df.update(df.blocks['object'].astype(str).replace({',': '.'}))

Ответ 2

Как насчет этого:

In [25]: df.loc[:, df.dtypes=='object'] = \
             df.select_dtypes(['object']).astype(str).replace({',': '.'})

Это применит .replace только к столбцам a string (object) dtype