私は住所のリストを持っており、GeoPyを使って私は経度と緯度を取得しています。すべてがうまくいきますが、今度は同じCSVファイルに経度と緯度を挿入したいので、8番目の列の緯度と9番目の列の経度を入れてください。Pythonを使用して特定のcsv列に書き込む
AREA, ADDRESS1, ADDRESS2, ADDRESS3, ADDRESS4, ADDRESS7, LATITUDE, LONGITUDE
NORRKÖPING, Fridtunga, 602 28, Norrköping,SE
NORRKÖPING, Björnatan gata 131, 603 77, Norrköping,SE
上記は、私が情報を抜き出しているcsvファイルです。私は最後の部分は、私が把握することはできません一部である
彼らとfrom geopy.geocoders import Nominatim
import csv
geolocator = Nominatim()
with open('test.csv', 'r') as in_file:
reader = csv.reader(in_file)
for row in reader:
adress1 = row[3]
adress2 = row[5]
locaiton = geolocator.geocode(adress1 + " " + adress2)
if locaiton is not None and locaiton.longitude is not None and locaiton.latitude is not None:
print(adress1 + " " + adress2 + " ", locaiton.latitude, locaiton.longitude)
out_file = open('test.csv', 'w')
writer = csv.writer(out_file)
row[6] = locaiton.latitude
row[7] = locaiton.longitude
writer.writerow(row)
を経度と緯度をアドレス2と4を取り、取得しています。私はどうやってそれを作ることができ、それは行内で続けていくのですか?今度は、経度と緯度を同じ行に置き、前の行を削除します。
今csvファイルは次のようになります。
NORRKÖPING, Björnatan gata 131, 603 77, Norrköping,SE,58.5888632,16.186094499284,
が、私はそれがどのように見えるしたいと思います:
NORRKÖPING, Fridtunga, 602 28, Norrköping,SE, 58.5649201, 16.217851
NORRKÖPING, Björnatan gata 131, 603 77, Norrköping,SE,58.5888632,16.186094499284,
あなたのcvsファイルは正しいですか?私はNumpyでスクリプトを書くことができましたが、最初の行に8列、次に5つの要素が表示されました – Deadpool
ええ、正しいのは最初の列をコピーできませんでした。私はnumpyやPandasをインストールしようとする可能性がありますが、私はすでにプログラムの最初の半分を持っています。 – Jan
各反復で 'test.csv'ファイルを上書きしています。これは、オープンモードが「w」であるためです。イテレーションを開始する前に、出力ファイルを開いてライターを作成する必要があります。 '行'が初期化された直後。 – frist