簡體   English   中英

Python - 將Zip代碼作為字符串加載到DataFrame中?

[英]Python - Loading Zip Codes into a DataFrame as Strings?

我正在使用Pandas加載包含郵政編碼的Excel電子表格(例如32771)。 郵政編碼在電子表格中存儲為5位數字符串。 使用命令將它們拉入DataFrame時...

xls = pd.ExcelFile("5-Digit-Zip-Codes.xlsx")
dfz = xls.parse('Zip Codes')

他們被轉換成數字。 所以'00501'變成了501。

所以我的問題是,我該怎么做:

一種。 加載DataFrame並保存存儲在Excel文件中的郵政編碼的字符串類型?

將DataFrame中的數字轉換為五位數字符串,例如“501”變為“00501”?

作為解決方法,您可以使用Series.str.zfillint轉換為長度為5的0填充字符串:

df['zipcode'] = df['zipcode'].astype(str).str.zfill(5)

演示:

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)

產量

  zipcode
0   00501
str(my_zip).zfill(5)

要么

print("{0:>05s}".format(str(my_zip)))

是許多方法中的兩個

您可以使用自定義轉換器避免使用panda的類型推斷,例如,如果'zipcode'是帶有zipcodes的列的標題:

dfz = xls.parse('Zip Codes', converters={'zipcode': lambda x:x})

這可能是一個錯誤,因為該列最初是字符串編碼的, 這里提出了一個問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM