【问题标题】:Coordinates output to csv file python坐标输出到csv文件python
【发布时间】:2022-01-09 16:18:54
【问题描述】:

我目前正在从事一个需要收集坐标并将其传输到 csv 文件的项目。我正在使用 k-means 算法来查找坐标(更大坐标集合的质心)。输出是一个带有坐标的列表。起初我想简单地将它复制到一个 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 文件。

提前致谢!

【问题讨论】:

    标签: python csv k-means


    【解决方案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__)))
    

    这可确保输出与您的脚本位于同一文件夹中。

    【讨论】:

    • 非常非常非常感谢。你不知道你对我的论文有多大帮助。真诚的,蟒蛇菜鸟
    • 不客气!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-17
    • 2021-12-21
    • 1970-01-01
    • 2014-07-28
    相关资源
    最近更新 更多