修改后,运行下面代码运行后文档内只有列索引,没有内容,请帮我找一下原因 # -*- coding: utf-8 -*- import urllib.request import re import pandas as pd import time def getdata(url): req = urllib.request.Request(url) req.add_header('User-Agent', ' Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36') data = urllib.request.urlopen(req).read().decode('utf-8') str1 = str(data) pat = '''<tr> <td>(.*?)</td> <td>(.*?)</td> <td>(.*?)</td> <td>(.*?)</td> <td>(.*?)</td> </tr>''' result = re.compile(pat).findall(str1) return result if __name__ == '__main__': for i in range(2018, 2020): print('正在收集第%d年数据' % i) rank = [] country = [] zhou = [] total = [] url = 'https://www.kuaiyilicai.com/stats/global/yearly/g_gdp/' + str(i) + '.html' data = getdata(url) for j in range(0, len(data)): rank.append(data[j][0]) country.append(data[j][1]) zhou.append(data[j][2]) total.append(data[j][3]) dataframe = pd.DataFrame({'排名': rank, '国家/地区': country, '所在洲': zhou, 'GDP(美元计)': total}) with open(str(i) + "年世界gdp排名.csv", mode="w", encoding="utf_8_sig") as f: dataframe.to_csv(f, index=False, sep=',') print(i, '年数据收集完成')
时间: 2024-04-28 13:21:51 浏览: 54
这个问题可能是因为 `pandas.DataFrame` 对象创建成功,但在写入 csv 文件时出现了问题。你可以在写文件时添加一个参数 `header=True`,以确保写入文件时包含列名。修改后的写入文件的代码如下所示:
```
with open(str(i) + "年世界gdp排名.csv", mode="w", encoding="utf_8_sig") as f:
dataframe.to_csv(f, index=False, header=True, sep=',')
```
如果问题仍然存在,你可以尝试检查生成的 `pandas.DataFrame` 对象中是否有数据。
阅读全文