Re: [問題]pandas重複分割,重複存檔

看板Python作者 (A動動)時間10年前 (2015/04/12 12:58), 編輯推噓2(2021)
留言23則, 2人參與, 最新討論串3/3 (看更多)
# -*- coding: utf-8 -*- import pandas as pd from geocodequery import GeocodeQuery df = pd.read_csv('./birdsIwant3.csv',low_memory=False) def addrs(location): gq = GeocodeQuery("zh-tw", "tw") gq.get_geocode(location) print location return pd.Series({"lat": gq.get_lat(), "lng": gq.get_lng()}) def test(location): return pd.Series({"lat" :5, "lng":10}) df['lat'] = 0 df['lng'] = 0 query_count = 2 loop_count = int(df.shape[0]/query_count) for lc in range(2): df.loc[lc*query_count: (lc+1)*query_count, ['lat','lng']] = df[lc*query_count: (lc+1)*query_count]['location'].apply(addrs) ##the problem## df.to_csv('./birdsIwant3_1.csv',index=False) print pd.read_csv('./birdsIwant3_1.csv', low_memory=False) query_count 是每次回圈查詢的次數 loop_count 是計算總共需要跑幾次迴圈 我跑了兩個迴圈,print只截取有lat lng的 count.317 birdName.317 lat lng 0 NaN NaN 24.373316 121.310400 1 NaN NaN 24.205938 121.010132 2 NaN NaN 24.373316 121.310400 3 NaN NaN 24.774906 120.970782 是有存進去的 因為檔案很大,每次寫回去都有點久 如果記憶體充足或者api不會被google擋掉的話,可以考慮看看全部查完再寫回去 或者試試看每個迴圈拆成一個檔案最後合併起來 不知道有沒有解決你的問題,有問題在一起討論~ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.116.217.21 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1428814721.A.B09.html

04/12 14:14, , 1F
可以考慮每個迴圈拆成一個檔案,但這後續合併
04/12 14:14, 1F

04/12 14:15, , 2F
會不會有問題?
04/12 14:15, 2F

04/12 14:16, , 3F
現在剩下只要超過300筆就會沒辦法跑的問題
04/12 14:16, 3F

04/12 15:15, , 4F
合併會有什麼問題嗎?超過300筆個人認為是google的
04/12 15:15, 4F

04/12 15:16, , 5F
問題,如果沒經過申請或者購買,短時間要大量資料
04/12 15:16, 5F

04/12 15:17, , 6F
會被google認為是攻擊的行為,所以會被擋住
04/12 15:17, 6F

04/12 15:21, , 7F
http://ppt.cc/03a9 如果不是google問題,可以貼上
04/12 15:21, 7F

04/12 15:21, , 8F
完整錯誤訊息嗎?
04/12 15:21, 8F

04/12 15:23, , 9F
http://ppt.cc/rJZS 10060我猜測應該是google問題了
04/12 15:23, 9F

04/13 09:06, , 10F
[error:10060]應該是google的問題,但是我的for loop
04/13 09:06, 10F

04/13 09:08, , 11F
在google一天2500筆的限制裡,只要超過300筆,
04/13 09:08, 11F

04/13 09:11, , 12F
也是會出現相同錯誤,"連線嘗試失敗,因為連線對
04/13 09:11, 12F

04/13 09:11, , 13F
象有一段時間並未正確回應,或是連線建立失敗,因為
04/13 09:11, 13F

04/13 09:12, , 14F
連線的主機無法回應"
04/13 09:12, 14F

04/14 11:27, , 15F
這我比較不確定了,google可能限制短時間內不能連查
04/14 11:27, 15F

04/14 12:05, , 16F
應該也是這樣,想請問一下,現在我想將原始資料切成
04/14 12:05, 16F

04/14 12:06, , 17F
抱歉,上面有點發問錯
04/14 12:06, 17F

04/14 12:08, , 18F
1.想將原始資料全部分成2500筆為一個檔案
04/14 12:08, 18F

04/14 12:09, , 19F
2.因為不能短時間內針對2500筆資料取得經緯度,想要
04/14 12:09, 19F

04/14 12:10, , 20F
加入time的語法進去,做sleep的動作
04/14 12:10, 20F

04/14 12:11, , 21F
請教你,上面兩個問題有辦法可以在同支程式碼解決嗎?
04/14 12:11, 21F

04/16 00:12, , 22F
切檔案就把query count 改成2500把查詢拿掉就好了,
04/16 00:12, 22F

04/16 00:12, , 23F
建議查詢的資料如果有重複的也可以先濾出來再查
04/16 00:12, 23F
文章代碼(AID): #1LAVk1i9 (Python)
文章代碼(AID): #1LAVk1i9 (Python)