仅截断pandas中的某些十进制值

sshcrbum  于 2023-03-21  发布在  其他
关注(0)|答案(2)|浏览(133)

下面是我的数据框:
| 客户端ID|标题|位置码|
| - ------|- ------|- ------|
| 一百二十三|贝克|十五、一|
| 一百二十三|厨师长|十六岁|
| 一百二十三|法默|十七、二|
我只需要在小数点为.0时截断它,所以我的结果看起来像这样:
| 客户端ID|标题|位置码|
| - ------|- ------|- ------|
| 一百二十三|贝克|十五、一|
| 一百二十三|厨师长|十六|
| 一百二十三|法默|十七、二|
我对在Python中使用Pandas还是比较陌生的。有人有什么建议吗?我最近想出了如何使用

df['Hourly Rate'] = df['Hourly Rate'].apply(lambda x: format(float(x),".2f"))

总是在我的列中添加两个小数。会使用类似的东西吗?

2jcobegt

2jcobegt1#

如果你对列中的字符串没有问题,那么你可以用途:

df['position_code']=df['position_code'].map(lambda x: format(float(x), ".0f") if (abs(float(x)-int(x)) < 1e-6) else format(float(x), ".1f"))

1 e-6用于避免任何剩余浮点舍入问题

ozxc1zmp

ozxc1zmp2#

你也可以试试这个:

df['position_code'] = df['position_code'].apply(lambda x: str(int(x)) if x % 1 == 0 else x)

相关问题