我有一个包含手动输入的数据点的数据框,理想情况下应该包含数字。然而,有大量的数据质量问题,其中有两个小数位如下所示:
A B
0 54.6464 46.8484
1 64.68461 65.4
2 95.79527 65.644
3 484.644.161 45.45
4 71.257.9 21.1
5 12.8 10.8
6 9.6 12.5
7 312.4 12.787.57.674
通常,如果这些值只是小 Dataframe 中的几个值,我会手动更改它们。如果 Dataframe 较大,则会非常麻烦。我想去掉第二个小数点,这样我会得到以下结果:
A B
0 54.646400 46.848400
1 64.684610 65.400000
2 95.795270 65.644000
3 484.644161 45.450000
4 71.257900 21.100000
5 12.800000 10.800000
6 9.600000 12.500000
7 312.400000 12.787577
我尝试过强制限制字符长度来去掉第二个小数点,但是它会在意想不到的地方弹出,所以下面的逻辑在这里不能很好地工作:
df['A'] = df['A'].str.slice(0,4)
df['B'] = df['B'].str.slice(0,4)
6条答案
按热度按时间o0lyfsai1#
使用扩展正则表达式替换:
cwxwcias2#
与Leonid的答案非常相似,但没有使用. apply。不确定哪个是最好的。
wljmcqd83#
这是使用正则表达式删除第二个小数点的解决方案,而不是@Leonid Astrain提出的函数,看起来像缩短版:
输出将为:
yebdmbv44#
我会这样做:
whlutmcx5#
如果始终存在小数点:
aemubtdh6#
您可以使用一些字符串操作: