如何更有效地更改数据框列的值

时间:2020-02-12 14:42:40

标签: python pandas dataframe iteration conditional-statements

我拥有以下数据框:

          Cap
0          44
1       40017
2         123
3       13900
4        9122
      ...
317173  41012
317174  39055
317175   9055
317176    146
317177  74121

['Cap']列中的值应包含5位数字。缺少的数字应为零:

          Cap
0       00044
1       40017
2       00123
3       13900
4       09122
      ...
317173  41012
317174  39055
317175  09055
317176  00146
317177  74121

我是编程新手。我创建了以下有效的迭代过程,但我确信必须有一种更有效的方法(在原始数据框中有更多列)。

for lab, row in df.iterrows():
   if len(str(df.loc[lab, 'Cap'])) == 1:
       df.loc[lab, 'Cap'] = '0000' + str(df.loc[lab, 'Cap'])
   elif len(str(df.loc[lab, 'Cap'])) == 2:
       df.loc[lab, 'Cap'] = '000' + str(df.loc[lab, 'Cap'])
   elif len(str(df.loc[lab, 'Cap'])) == 3:
       df.loc[lab, 'Cap'] = '00' + str(df.loc[lab, 'Cap'])
   elif len(str(df.loc[lab, 'Cap'])) == 4:
       df.loc[lab, 'Cap'] = '0' + str(df.loc[lab, 'Cap'])

谢谢。

0 个答案:

没有答案