簡體   English   中英

坐標 output 到 csv 文件 python

[英]Coordinates output to csv file python

我目前正在做一個項目,我需要收集坐標並將其傳輸到 csv 文件。 我正在使用 k-means 算法來查找坐標(更大坐標集合的質心)。 output 是一個帶坐標的列表。 起初我想簡單地將它復制到 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”output 轉換為 csv 文件。

提前致謝!

您可以執行以下操作:

with open(yourfile, "w") as f:
  for line in kmc:
    for data in line:
      f.write(data + ",")
    f.write("\n")

您可以使用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

我建議你把你的 output 文件的完整路徑,以確保你有寫權限。 或者按照建議,使用sudo 或者,您可以將以下內容添加到頂部:

import os

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

這可確保 output 與您的腳本位於同一文件夾中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM