Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python根据字符串长度更改数据帧内容_Python_Pandas_Dataframe - Fatal编程技术网

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