首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >熊猫阅读excel的问题有什么不对?

熊猫阅读excel的问题有什么不对?
EN

Stack Overflow用户
提问于 2019-04-11 01:50:08
回答 1查看 236关注 0票数 1

我想从excel文件中读取大量的坐标(关于14000+),并通过百度地图的API将它们转换成特定的地址。但是程序只能读取最后的坐标。我的代码有什么问题吗?这是我的代码:

代码语言:javascript
复制
import requests
import pandas as pd
import json

df = pd.read_excel(r'C:\Users\YDC\Desktop\JW.xlsx')
fw = open(r'C:\Users\YDC\Desktop\result.txt', "w", encoding="utf-8")

for i in range(0,len(df)):
    t1=df.iloc[i]['lat']
    t2=df.iloc[i]['lng']

baiduUrl = "http://api.map.baidu.com/geocoder/v2/?ak=21q0bMSgjdDVe0gLmjClrsuyUA1mvsRx&callback=renderReverse&location=%s,%s&output=json&pois=0" % (t1, t2)
req = requests.get(baiduUrl)
content = req.text
content = content.replace("renderReverse&&renderReverse(", "")
content = content[:-1]
baiduAddr = json.loads(content)
country = baiduAddr["result"]["addressComponent"]["country"]
city = baiduAddr["result"]["addressComponent"]["city"]
province = baiduAddr["result"]["addressComponent"]["province"]

new_line = country + "|" + city + "|" + province
fw.write(new_line)
fw.write("\n")

print(new_line)

它只能打印最后一个坐标的地址:捷克共和国\Olomouc\\Olomouc\\Olomouc

如何获得其余的这些坐标?下面是excel文件中的数据

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-11 03:53:42

这看起来像是一个经典的python循环。

考虑到这一点:

代码语言:javascript
复制
for i in range(0, 10):
    foo = i
print (foo) # notice the indentation 

输出

代码语言:javascript
复制
9

这是因为在python中,变量范围是这样的,您仍然可以从循环外部引用在循环中定义的变量。

这样一个非常简单的修复方法:

代码语言:javascript
复制
for i in range(0, 10):
    foo = i
    print (foo)

给出预期结果

代码语言:javascript
复制
0
1
2
3
4
5
6
7
8
9

在您的示例中,只需确保向前第12行向右缩进一个级别即可。

相关:Python 'for‘循环中的作用域

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55623552

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档