python - 在字符串值的末尾添加零而不更改列类型
问题描述
我的df
表中有字符串列,如下所示:
d = {'col1': ['1.2', '3.4', '1.99', '0.14', '2.9', '', '2.3']}
df = pd.DataFrame(data=d)
df
我想将此列转换,使所有值都包含两位小数,但不将此列的类型更改为数字类型。
预期输出 - 带有值的字符串列:
我对 Python 有点陌生,我尝试填充 0如何在 Python 中用零填充数字字符串?取决于列中值的长度,但它实际上没有用。
你知道如何处理吗?
解决方案
使用str.ljust
:
df['col1'] = df['col1'].str.ljust(4, '0')
输出:
col1
0 1.20
1 3.40
2 1.99
3 0.14
4 2.90
5 2.30
要保持空行不变:
df['col1'] = df['col1'].mask(df['col1'].astype(bool), df['col1'].str.ljust(4, '0'))
输出:
col1
0 1.20
1 3.40
2 1.99
3 0.14
4 2.90
5
6 2.30
注意。获取最大字符串长度:df['col1'].str.len().max()
->4
推荐阅读
- c# - 如何将可选字符串注释为不可为空
- c# - 将变换块
.TryReceiveAll(IList ) 当且仅当所有元素都收到时返回 true? - amazon-web-services - 客户端打算发送太大的正文 EB Nginx
- python - 一次在 venv 上运行不同 python 版本的命令 CMD
- javascript - 无法通过道具映射 - React JS/API 调用
- javascript - 如何从 TypeScript 中的地图中的自定义键类型中获取对象?
- wordpress - 如何在 WordPress 页面模板上获取一次数据并在同一页面中使用的多个短代码中访问它
- r - 如何从数据框中的特定列中删除重复值?
- sql - SQL如何获取购买间隔为3个月的帐户ID
- python-3.x - 根据正在检查的条件在 Dataframe 中创建一个新列。我想检查一个列的值是否有多个值,然后为其分配一个值