Ответ 1
df.update(df.blocks['object'].astype(str).replace({',': '.'}))
Вот рабочий пример:
df = pd.DataFrame({'A': [-39882300000000000000]}, dtype='object')
df.replace({',': '.'})
вызывает OverflowError
, потому что где-то в коде флаг convert
установлен в значение True. Я не уверен, но, вероятно, потому, что pandas выводит, что он содержит только числа.
Я прочитал данные из книги Excel, и я хочу предотвратить это преобразование при использовании df.replace
. Есть ли способ сделать это?
df.update(df.blocks['object'].astype(str).replace({',': '.'}))
Как насчет этого:
In [25]: df.loc[:, df.dtypes=='object'] = \
df.select_dtypes(['object']).astype(str).replace({',': '.'})
Это применит .replace
только к столбцам a string
(object
) dtype