逐行读取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,将经纬度坐标点显示在地图上
发布评论