这是一个有效的例子:
df = pd.DataFrame({'A': [-39882300000000000000]}, dtype='object')
df.replace({',': '.'})
引发OverflowError
,因为代码中的某处convert
标志设置为True。我不确定,但可能是因为大熊猫推断它只包含数字。
我从Excel工作簿中读取数据,并且我希望在使用df.replace
时阻止此转换。有办法吗?
答案 0 :(得分:8)
df.update(df.blocks['object'].astype(str).replace({',': '.'}))
答案 1 :(得分:6)
这个怎么样:
In [25]: df.loc[:, df.dtypes=='object'] = \
df.select_dtypes(['object']).astype(str).replace({',': '.'})
这仅适用于.replace
(string
)dtype
object