使用DataFrame.replace时是否可以强制pandas不转换数据类型

ayh*_*han 11 python pandas

这是一个有效的例子:

df = pd.DataFrame({'A': [-39882300000000000000]}, dtype='object')
Run Code Online (Sandbox Code Playgroud)

df.replace({',': '.'}) 引发一个OverflowError因为代码中的某个地方convert标志设置为True.我不确定,但可能是因为大熊猫推断它只包含数字.

我从Excel工作簿中读取数据,我想在使用时阻止此转换df.replace.有办法吗?

piR*_*red 8

df.update(df.blocks['object'].astype(str).replace({',': '.'}))
Run Code Online (Sandbox Code Playgroud)

  • 其中有一些是为了弃用; 他们只是膨胀API (2认同)

Max*_*axU 6

这个怎么样:

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

.replace仅适用于string(object)dtype的列