如何仅对4位数以下的熊猫列进行字符串处理?

时间:2018-10-25 14:53:03

标签: python pandas

我有一个看起来像这样的df:

   numbers
0      111
1    22222
2     3423

我要将0应用于任何4位数字的开头,该怎么做?

新df应该如下所示:

   numbers
0      111
1    22222
2    03423

3 个答案:

答案 0 :(得分:3)

使用rjust

df=df.astype(str)
df.loc[df.numbers.str.len()==4,'numbers']=df.numbers.str.rjust(5,'0')
df
Out[370]: 
  numbers
0     111
1   22222
2   03423

答案 1 :(得分:2)

pandas.Series.str.zfill

df = df.astype(str)  # Making sure these are strings

mask = df.numbers.str.len() == 4
df.loc[mask, 'numbers'] = df.loc[mask, 'numbers'].str.zfill(5)

df

  numbers
0     111
1   22222
2   03423

答案 2 :(得分:0)

尝试这样的事情

df ['ResultingColumn'] = [如果len.df ['ResultingColumn'] == 4],则df ['StringColumn']中x的['0'+ str(x)