Python-将邮政编码作为字符串加载到DataFrame中?

Ste*_*han 3 python excel zipcode pandas

我正在使用Pandas加载包含邮政编码(例如32771)的Excel电子表格。邮政编码以5位数字的字符串存储在电子表格中。使用命令将它们拉入DataFrame时...

xls = pd.ExcelFile("5-Digit-Zip-Codes.xlsx")
dfz = xls.parse('Zip Codes')
Run Code Online (Sandbox Code Playgroud)

它们被转换成数字。因此,“ 00501”变为501。

所以我的问题是,我该如何:

一种。加载DataFrame并保留存储在Excel文件中的邮政编码的字符串类型?

b。将DataFrame中的数字转换为五位数的字符串,例如“ 501”变成“ 00501”?

unu*_*tbu 5

解决方法是,您可以使用将ints 转换为长度为5的0填充字符串Series.str.zfill

df['zipcode'] = df['zipcode'].astype(str).str.zfill(5)
Run Code Online (Sandbox Code Playgroud)

演示:

import pandas as pd
df = pd.DataFrame({'zipcode':['00501']})
df.to_excel('/tmp/out.xlsx')
xl = pd.ExcelFile('/tmp/out.xlsx')
df = xl.parse('Sheet1')
df['zipcode'] = df['zipcode'].astype(str).str.zfill(5)
print(df)
Run Code Online (Sandbox Code Playgroud)

产量

  zipcode
0   00501
Run Code Online (Sandbox Code Playgroud)


Jor*_*ley 1

str(my_zip).zfill(5)
Run Code Online (Sandbox Code Playgroud)

或者

print("{0:>05s}".format(str(my_zip)))
Run Code Online (Sandbox Code Playgroud)

是执行此操作的许多方法中的 2 个