我有一个pandas数据框,它有一个特定的列,其长度应为4。如果长度为3,我想在值的开头添加一个'0'。例如:
a b c
1 2 0054
3 6 021
5 5 0098
8 2 012
因此,在c栏中,我想将第二行更改为“0021”,将最后一行更改为“0012”。值已经是字符串。我试过了:
df.loc[len(df['c']) == 3, 'c'] = '0' + df['c']
但它没有成功。谢谢你的帮助!
答案 0 :(得分:1)
如果C
中的类型是 int ,您可以执行以下操作:
df['C'].apply(lambda x: ('0'*(4-len(str(x))))+str(x) if(len(str(x)) < 4) else str(x))
在lambda函数中,我检查x
中的数字/字符数是否小于4。如果是,我在前面添加零,以便x
中的数字/字符数为4(这也称为 padding )。如果没有,我将值返回为字符串。
如果您的类型是字符串,则可以删除str()
函数调用,但它可以以任何方式工作。