@Wet_Dumplings

Как записать list (список?) в csv файл?

Привет !!

Пытаюсь записать в csv файл такую конструкцию: Город; Широта; Долгота;
Однако, либо записывает только последний из списка город и широту-долготу столбиком (3 строчки); либо при переписывании кода пишет что нельзя list в csv превратить...
import pandas, os
#os.listdir()
import geopy
import array
dir(geopy)

import csv

def csv_writer(data, path):

    with open(path, "w", newline='') as csv_file:

        writer = csv.writer(csv_file, delimiter=';')
        for line in data:
            writer.writerow(line)

arr = ["Токио", "Лондон", "Берлин", "Череповец"]


from geopy.geocoders import Nominatim
i=0
for arr[i] in arr:
    nom=Nominatim()
    n=nom.geocode(arr[i])#city
    data = [arr[i],n.latitude, n.longitude] #вот эту штуку в csv не переводит
    #print(arr[i],n,n.latitude, n.longitude)
    #print(arr[i], ";",n.latitude,";", n.longitude)  # а принтует нормально Город-Широта-Долгота...
    #print(arr[i],n.latitude, n.longitude)#coordinates
    #print(data)
    df = pandas.DataFrame(data)
    df.to_csv("./ output.csv", index=False, header=False)


    i = i +1
  • Вопрос задан
  • 2731 просмотр
Решения вопроса 2
LazyTalent
@LazyTalent
Data Engineer, Freelancer
О, Луц! Как это развидеть?!
import csv

from geopy.geocoders import AlgoliaPlaces as Geo

cities = ["Токио", "Лондон", "Берлин", "Череповец"]
geo = Geo()

data = []

for i in cities:
        n = geo.geocode(i)
        data.append([i, n.latitude, n.longitude])

with open('data.csv', 'w', newline='') as f:
        w = csv.writer(f)
        w.writerow(['city', 'lat', 'lon'])
        w.writerows(data)
Ответ написан
@GeneD88
QA
from geopy.geocoders import Nominatim
df = pandas.DataFrame(columns=['City', 'lat', 'lon'])

for num,city in enumerate(arr):
    nom=Nominatim(user_agent='Test app to save to csv')
    n=nom.geocode(city)
    data = [city,n.latitude, n.longitude]
    df.loc[num] = [city, n.latitude, n.longitude]

df.to_csv(r"output.csv", index=False, header=False)

City lat lon
0 Токио 35.682839 139.759455
1 Лондон 51.507322 -0.127647
2 Берлин 52.517037 13.388860
3 Череповец 59.128696 37.916389
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
11 мая 2024, в 06:09
30000 руб./за проект
11 мая 2024, в 00:19
1000 руб./за проект
10 мая 2024, в 23:51
30000 руб./за проект