2016-10-25 8 views
2

私はcsvファイルからいくつかの郵便番号を読み取るスクリプトを持っています。 ジップコードの形式は、このようなものです:Pandas read_csvは、0から始まるカラムを変更します。

zipcode 
75180 
90672 
01037 
20253 
09117 
31029 
07745 
90453 
12105 
18140 
36108 
10403 
76470 
06628 
93105 
88069 
31094 
84095 
63069 

それから私は、スクリプトを実行します。0から始まる郵便番号があるたびに

import requests 
import pandas as pd 
import time 

file = '/Users/zipcode.csv' 
reader = pd.read_csv(file, sep=';', encoding='utf-8-sig') 

zipcodes = reader["zipcode"].astype(str) 
base_url = "https://api.blabla/?zipcode={zipcode}" 
headers = {'Authentication': 'random'} 

for zipcode in zipcodes: 
    url = base_url.format(zipcode=zipcode) 
    r = requests.get(url, 
        headers=headers) 
    for r_info in r.json()["data"]: 
     print zipcode,r_info["id"] 
    time.sleep(0.5) 

はしかし、私が得る結果は、4桁の数字であり、それは実際の0と一致することはできません。 私はテキスト列を持つために自分のCSVをフォーマットしましたが、それでも動作しません。

私が手ジップコードは、このようなものです:

zipcode 
75180 
90672 
1037 
20253 
9117 
31029 
7745 
90453 
12105 
18140 
36108 
10403 
76470 
6628 
93105 
88069 
31094 
84095 
63069 

あなたはこれを解決する方法任意のアイデアを持っていますか?

答えて

5

あなたはstrとしてdtypeを渡す必要があります:STRとしてこれらの値を読み取るために

reader = pd.read_csv(file, sep=';', encoding='utf-8-sig', dtype=str) 

:デフォルトのパンダによって

In [152]: 
import pandas as pd 
import io 
t="""zipcode 
75180 
90672 
01037 
20253 
09117 
31029 
07745 
90453 
12105 
18140 
36108 
10403 
76470 
06628 
93105 
88069 
31094 
84095 
63069""" 
df = pd.read_csv(io.StringIO(t), dtype=str) 
df 

Out[152]: 
    zipcode 
0 75180 
1 90672 
2 01037 
3 20253 
4 09117 
5 31029 
6 07745 
7 90453 
8 12105 
9 18140 
10 36108 
11 10403 
12 76470 
13 06628 
14 93105 
15 88069 
16 31094 
17 84095 
18 63069 

dytpesを盗聴し、この場合には、それは彼らがとても数値で考えています先行ゼロを失う

strにキャストして後処理ステップとして行うこともできますベクター化を使用して:

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

Out[154]: 
    zipcode 
0 75180 
1 90672 
2 01037 
3 20253 
4 09117 
5 31029 
6 07745 
7 90453 
8 12105 
9 18140 
10 36108 
11 10403 
12 76470 
13 06628 
14 93105 
15 88069 
16 31094 
17 84095 
18 63069 
+0

はい!ありがとうございました:D –

関連する問題