【发布时间】:2019-09-30 11:23:16
【问题描述】:
我有一个 pandas 数据框,其中一些列有数值,而另一些则没有,如下所示:
City a b c
Detroit 129 0.54 2,118.00
East 188 0.79 4,624.4712
Houston 154 0.65 3,492.1422
Los Angeles 266 1.00 7,426.00
Miami 26 0.11 792.18
MidWest 56 0.24 772.7813
我想将这些数值四舍五入到小数点后 2 位,为此我正在使用:
df = df.replace(np.nan, '', regex=True)
之后 df 变为:
City a b c
Detroit 129.0 0.54 2,118.0
East 188.0 0.79 4,624.47
Houston 154.0 0.65 3,492.14
Los Angeles 266.0 1.0 7,426.0
Miami 26.0 0.11 792.18
MidWest 56.0 0.24 772.78
它几乎可以正常工作,但它也可以将正确的整数转换为小数,即像 100 这样的值会四舍五入为 100.0。我想要这样的数据框:
City a b c
Detroit 129 0.54 2,118
East 188 0.79 4,624.47
Houston 154 0.65 3,492.14
Los Angeles 266 1 7,426
Miami 26 0.11 792.18
MidWest 56 0.24 772.28
我想将这些值保留为正确的整数本身,同时在所有数字列中将其他值四舍五入到小数点后 2 位。我该怎么做?
【问题讨论】:
-
可以添加一些示例数据吗?
-
@jezrael 添加了示例数据
-
那么原始数据是带有
,的字符串吗?还是原来是花车? -
@jezrael 最初的数据是浮动的,但我使用 df.update(df.select_dtypes(include=np.number).applymap('{:,}'.format)) 添加了逗号
标签: python-3.x pandas dataframe