逐行读取txt文件得line,每行按空格分割一个数组line_data[],line_data[0]是userID,对于相同的user只取其第一个位置样本,其中提取第三四列元素,写进excel中.

原txt文件(高达300多M,用UltraEdit才打得开):

例如上图,对于userID为1的样本只需要把经度2.333和纬度48.8633提取出来,以此类推,得到每个用户的第一个位置的经纬度,写入excel表格中,然后导入水经注万能地图中标志出来,达到可视化的效果。

*写excel需要安装xlwt库:    pip install xlwt

import xlwt
cnt=500
preID=-1
Longitude=[]
Latitude=[]
for line in open(r"C:\Users\Administrator\Desktop\毕设\Gowalla_totalCheckins.txt", "r") : #设置文件对象并读取每一行文件
    line_data = line.split()
    if line_data[0]!=preID:
        preID=line_data[0]
        Latitude.append(float(line_data[2]))#将字符串类型转换成float类型
        Longitude.append(float(line_data[3]))
        # print(line)
    cnt-=1
    if cnt==0:
        break

xls=xlwt.Workbook()#新建工作簿;
sht1=xls.add_sheet("Sheet1")#新建sheet;
for index in range(len(Latitude)):#通过.write(行号,列号,值)来一个单元格一个单元格地写入数据,注意,行号和列号均从0开始;
    sht1.write(index,0,Longitude[index])
    sht1.write(index, 1, Latitude[index])
xls.save(r'C:\Users\Administrator\Desktop\毕设\points.xls')#通过.save('文件名')来保存。

结果xls文件:

地图上的分布:(可视化方法参考https://blog.csdn/weixin_41519463/article/details/86026790)

更多推荐

python读txt与写excel,将经纬度坐标点显示在地图上