pythonはフォルダの下のすべてのcsvファイルを読み取り、ファイルの中の経緯に基づいてcsvファイルにgeohashコードを追加します.

14528 ワード

pythonフォルダの下にあるすべてのcsvファイルを読み取り、ファイル内の経緯度をgeohash符号化して新規列としてcsvファイルに保存します
コードは以下の通りです:(注:このコード処理csvファイルには、経度と緯度の2列のカラムのないデータしかありません)

import geohash as gh
import os
import pandas as pd
for info in os.listdir("E:\geohashData\jwdt1"):#      
    domain = os.path.abspath(r"E:\geohashData\jwdt1") #        
    info = os.path.join(domain,info) #                      
    data = pd.read_csv(info,header=None,names=['longitude','latitude'])#              

#data1=pd.DataFrame(data,columns=['latitude','longitude'])
data_list=[]
latitude=data["latitude"]
longitude=data["longitude"]
for i in  range(1,960357): #      ,        print(data)                 , low ,       
    geohash=gh.encode(float(latitude[i-1]),float(longitude[i-1]))#geohash      
    data_list.append([latitude[i-1],longitude[i-1],geohash])#     geohash      
df=pd.DataFrame(data_list,columns=['latitude','longitude','geohash'])#        
df.to_csv("e:/geohashR/geohashR11.csv",index=None)#     csv  


csvファイルに経緯度以外のデータが混在している場合、処理コードは以下の通りです(注:次のコードはまだデバッグに成功していません.参考までに)
import geohash as gh
import os
import pandas as pd
for info in os.listdir("E:\geohashData\hashTestData.csv"):#
    domain = os.path.abspath(r"E:\geohashData\hashTestData.csv") #
    info = os.path.join(domain,info) #                      
    #data = pd.read_csv(info) 
    data = pd.read_csv(info,header=None,names=['_C0','_C1','_C2','longitude','latitude','_C5','_C6','_C7','_C8','_C9','_C10','_C11','_C12','_C13'])
data
#data1=pd.DataFrame(data,columns=['latitude','longitude'])
data_list=[]
latitude=data["latitude"]
longitude=data["longitude"]
#latitude=data["latitude"]
#print(latitude[1])
for i in  range(1,1044273): 
    try:
        geohash=gh.encode(float(latitude[i-1]),float(longitude[i-1]))
        data_list.append([_C0[i-1],_C1[i-1],_C2[i-1],longitude1[i-1],latitude[i-1],geohash,_C5[i-1],_C6[i-1],_C7[i-1],_C8[i-1],_C13[i-1]])
    except KeyError:
        continue
df=pd.DataFrame(data_list,columns=['_C0','_C1','_C2''longitude1','latitude','geohash''_C5','_C6','_C7','_C8','_C13'])
df.to_csv("e:/geohashR/geohashR.csv",index=None)