问题:
URLError: <urlopen error [WinError 10061] 由于目标计算机积极拒绝,无法连接。> ParserError: Error tokenizing data. C error: Expected 1 fields in line 41, saw 16
今天开始学习Pandas啦!
跟着一个博主的视频熟练Pandas的一些基础使用。
博主的视频放在这里了:什么是DataFrame和Series?【Pandas入门教程2】_哔哩哔哩_bilibili
博主将练习的csv文件放在了github上,于是通过pd.read_csv(url)来读取github上的csv文件
csv_path = 'https://github.com/turingplanet/pandas-intro/blob/main/public-datasets/country.csv'
country_info = pd.read_csv(csv_path)
1、然后遇到了第一个问题:
应该是没开梯子,所以被拒绝访问,于是打开梯子,得以解决!
2、但是遇到了第二个问题:
上网查了一下,说可能是这个文件的分隔符与Pandas默认的分隔符不一样,于是添加一个设置分割符的命令:
country_info = pd.read_csv(csv_path, sep = '\t')
很好!问题又得以解决了!
3、但是,又出现了第三个问题
表格中的内容似乎不对劲,这不是我想要输出的表格的内容,感觉表格里的东西是个网址还是啥。(刚开始还怀疑是不是网络不太稳定,于是换了好几个梯子的节点,不断刷新,也还是没有解决)于是又上网查了一下,发现没找到答案,最后去问了gpt:
这个回答确实很详细,而且指出了问题所在,但是去看了一下输入的文件地址,感觉没错啊
不就是这个地址吗
于是又去问了一下gpt:
发现我输入的地址和gpt提供的这个地址有点不一样,于是输入了gpt提供的这个地址:
csv_path = 'https://raw.githubusercontent.com/turingplanet/pandas-intro/main/public-datasets/country.csv'
country_info = pd.read_csv(csv_path)
Everything is OK!
所有问题都解决了!
总结:
直接复制的网页的那个地址并不是指向这个csv文件本身的,而是指向这个网页的,所以读入表格中的内容是这个网页的信息:
真正指向这个csv文件的地址应该是这个:
这个地址,才是真正访问原始csv文件的地址。
再来看一下两个地址的区别:
# 指向csv文件网页
csv_path = 'https://github.com/turingplanet/pandas-intro/blob/main/public-datasets/country.csv'
# 指向原始csv文件
csv_path = 'https://raw.githubusercontent.com/turingplanet/pandas-intro/main/public-datasets/country.csv'
小白踩坑第一弹,分享给踩过同样坑的小伙伴~
分享一个有帮助的帖子:通过 Http 请求获取 GitHub 文件内容 - 程天飞 - 博客园 (cnblogs.com)