Python根据字符串长度更改数据帧内容
我有一个如下所示的数据帧Python根据字符串长度更改数据帧内容,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个如下所示的数据帧 df = pd.DataFrame([111111,123456,12345,234,12,987654],columns=['id']) 因此,如果您查看第3、4、5行,ID的长度小于6 id 111111 123456 12345 234 12 987654 我想把它转换成下面(基本上在前面加上零,使它的长度为6) 您必须将数据类型更改为字符串,否则初始零将被修剪。 下面是我的解决方案。希望能有帮助 df = pd.DataFrame([111111,12345
df = pd.DataFrame([111111,123456,12345,234,12,987654],columns=['id'])
因此,如果您查看第3、4、5行,ID的长度小于6
id
111111
123456
12345
234
12
987654
我想把它转换成下面(基本上在前面加上零,使它的长度为6)
您必须将数据类型更改为字符串,否则初始零将被修剪。 下面是我的解决方案。希望能有帮助
df = pd.DataFrame([111111,123456,12345,234,12,987654],columns=['id'])
df = df.astype(str)
df['id'] = df['id'].apply(lambda x: x if len(x)==6 else '0'*(6-len(x))+x)
df:
id
111111
123456
012345
000234
000012
987654
使用
请尝试
zfill
,首先将整数转换为字符串数据类型,然后使用字符串访问器,然后使用zfill:
df['id'].astype(str).str.zfill(6)
输出:
0 111111
1 123456
2 012345
3 000234
4 000012
5 987654
Name: id, dtype: object
也许你真是太好了。@Sandyathotakura yw:uu新年快乐谢谢你的回答。但我会选择W-B,因为我觉得他的答案更有力。谢谢你教我zfill(int)@sandyathotakura快乐编码的概念!谢谢巴努的回答。你回答我的问题很快。所以我投赞成票。
df['id'].astype(str).str.zfill(6)
0 111111
1 123456
2 012345
3 000234
4 000012
5 987654
Name: id, dtype: object