Координаты выводятся в файл csv python

#python #csv #k-means

#питон #csv #к-означает

Вопрос:

В настоящее время я работаю над проектом, в котором мне нужно собрать координаты и перенести их в файл csv. Я использую алгоритм k-средних для поиска координат (центроидов большей коллекции координат). На выходе получается список с координатами. Сначала я хотел просто скопировать его в файл excel, но это сработало не так хорошо, как я хотел.

Это мой код:

 df = pd.read_excel("centroid coordinaten excel lijst.xlsx") df.head(n=16) plt.scatter(df.X,df.Y)   km = KMeans(n_clusters=200) print(km)  y_predict = km.fit_predict(df[['X','Y']])  print(y_predict)  df['cluster'] = y_predict  kmc = km.cluster_centers_ print(kmc)  #The output kmc is the list with coordinates and it looks like this:   [[ 4963621.73063468 52320928.30284858] [ 4981357.33667335 52293627.08917835] [ 4974134.37538941 52313274.21495327] [ 4945992.84398977 52304446.43606138] [ 4986701.53977273 52317701.43831169] [ 4993362.9143898 52296985.49271403] [ 4949408.06109325 52320541.97963558] [ 4966756.82872596 52301871.5655048 ] [ 4980845.77591313 52324669.94175716] [ 4970904.14472671 52292401.47190146]]  

Есть ли кто-нибудь, кто знает, как преобразовать вывод «kmc» в файл csv.

Заранее спасибо!

Ответ №1:

Вы можете использовать csv библиотеку следующим образом:

 import csv  kmc = [  [4963621.73063468,52320928.30284858],  [4981357.33667335,52293627.08917835],  [4974134.37538941,52313274.21495327],  [4945992.84398977,52304446.43606138],  [4986701.53977273,52317701.43831169],  [4993362.9143898,52296985.49271403],  [4949408.06109325,52320541.97963558],  [4966756.82872596,52301871.5655048],  [4980845.77591313,52324669.94175716],  [4970904.14472671,52292401.47190146], ]  with open('output.csv', 'w', newline='') as f_output:  csv_output = csv.writer(f_output)  csv_output.writerow(['lat', 'long'])  csv_output.writerows(kmc)  

Даю вам output.csv содержащее:

 lat,long 4963621.73063468,52320928.30284858 4981357.33667335,52293627.08917835 4974134.37538941,52313274.21495327 4945992.84398977,52304446.43606138 4986701.53977273,52317701.43831169 4993362.9143898,52296985.49271403 4949408.06109325,52320541.97963558 4966756.82872596,52301871.5655048 4980845.77591313,52324669.94175716 4970904.14472671,52292401.47190146  

Я предлагаю вам указать полный путь к выходному файлу, чтобы убедиться, что у вас есть разрешение на запись. Или, как предлагалось, используйте sudo . В качестве альтернативы вы можете добавить в начало следующее:

 import os  os.chdir(os.path.dirname(os.path.abspath(__file__)))  

Это гарантирует, что выходные данные будут находиться в той же папке, что и ваш сценарий.

Комментарии:

1. Большое, очень, очень вам спасибо. Вы понятия не имеете, как сильно помогли мне с моей диссертацией. Искренне ваш, новичок на питоне

2. Не за что!