Skip to main content
 首页 » 编程设计

python之如何仅用 Pandas 数据框中的另一个数字替换单个数字

2025年05月04日14tintown

我有以下 Pandas 数据框:

   date 
0   1 
1   2 
2   23 
3   31 
4   4 
... 
n    3 

如何仅用以下格式替换所有从 1 到 9 的数字(例如,一位数):

01, 02, 03, 04, 05, 06, 07, 08, 09 

我尝试使用以下 pandas 替换函数:

df['date'] = df['date'].replace(['1', '2', '3', '4', '5', '6', '7', '8', '9']), 
                                                          [' 01 ', ' 02 ', ' 03 ', '04 ', ' 05 ', ' 06 ', ' 07 ', ' 08 ', ' 09 '],regex=True) 

但是,它没有用,因为它正在修改数据框中的所有(即超过一位数的数字)。因此,如何规范化日期列?

请您参考如下方法:

如果需要使用 astype(str) 将列转换为 str,然后调用 str.zfill以 0 填充这些数字:

In [13]: 
df['date'] = df['date'].astype(str).str.zfill(2) 
df 
 
Out[13]: 
  date 
0   01 
1   02 
2   23 
3   31 
4   04 

关于您的评论:

In [17]: 
df['year'] = '20' + df['date'] 
df 
 
Out[17]: 
  date  year 
0   01  2001 
1   02  2002 
2   23  2023 
3   31  2031 
4   04  2004 

当列 dtype 已经是 str

时上面的工作