在Pandas DataFrame中将数字转换为特定的字符串格式

问题描述

我需要运行一个可以通过循环完成的任务,但我想有一种更有效、更漂亮的方法来实现这一点。我有一个DataFrame,它有一个整型列,我想将其转换为4位字符串表示形式。也就是说,3应转换为‘0003’,234应转换为‘0234’。我正在寻找一个向量操作,可以一次对列中的所有条目执行此操作,使用简单的代码快速。


解决方案

可以使用Series.str.zfill()方法:

df['column_name'] = df['column_name'].astype(str).str.zfill(4)

演示:

In [29]: df = pd.DataFrame({'a':[1,2], 'b':[3,234]})

In [30]: df
Out[30]:
   a    b
0  1    3
1  2  234

In [31]: df['b'] = df['b'].astype(str).str.zfill(4)

In [32]: df
Out[32]:
   a     b
0  1  0003
1  2  0234

相关文章