如何使用Pandas从GitHub读取CSV文件

时间:2019-03-19 11:46:46

标签: python pandas csv

我正在尝试使用pandas使用Python读取github上的CSV文件>我已经遍及整个网络,并且尝试了一些在此网站上找到的解决方案,但它们无法正常工作。我在做什么错了?

我已经尝试过了:

import pandas as pd

url = 'https://github.com/lukes/ISO-3166-Countries-with-Regional-Codes/blob/master/all/all.csv'
df = pd.read_csv(url,index_col=0)
#df = pd.read_csv(url)

print(df.head(5))

5 个答案:

答案 0 :(得分:3)

您应提供原始内容的URL。尝试使用此:

import pandas as pd

url = 'https://raw.githubusercontent.com/lukes/ISO-3166-Countries-with-Regional-Codes/master/all/all.csv'
df = pd.read_csv(url, index_col=0)
print(df.head(5))

输出:

               alpha-2           ...            intermediate-region-code
name                             ...                                    
Afghanistan         AF           ...                                 NaN
Åland Islands       AX           ...                                 NaN
Albania             AL           ...                                 NaN
Algeria             DZ           ...                                 NaN
American Samoa      AS           ...                                 NaN

答案 1 :(得分:2)

在GitHub URL的末尾添加?raw = true 以获取原始文件链接。

就您而言,

import pandas as pd
url = 'https://github.com/lukes/ISO-3166-Countries-with-Regional-Codes/blob/master/all/all.csv?raw=true'
df = pd.read_csv(url,index_col=0)
#df = pd.read_csv(url)

print(df.head(5))

注意:这仅适用于GitHub链接,不适用于GitLab或Bitbucket链接。

答案 2 :(得分:0)

我建议您按照您尝试过的方式使用熊猫,并在此进行其他说明,或者根据应用程序,使用python csv-handler CommaSeperatedPython,它是本机csv库的简约包装。

该库以二维字符串数组形式返回文件的内容。不过,它还处于初期阶段,因此,如果您要进行大规模数据分析,建议您使用Pandas。

答案 3 :(得分:0)

您可以复制/粘贴网址并更改2件事:

  1. 删除“斑点”
  2. 用raw.githubusercontent.com替换github.com

例如,此链接:

https://github.com/mwaskom/seaborn-data/blob/master/iris.csv

以这种方式工作:

import pandas as pd

pd.read_csv('https://raw.githubusercontent.com/mwaskom/seaborn-data/master/iris.csv')

答案 4 :(得分:0)

首先将 github csv 文件转换为 raw 以访问数据,请按照下面的链接评论如何将 csv 文件转换为 raw 。

import pandas as pd

url_data = (r'https://raw.githubusercontent.com/oderofrancis/rona/main/Countries-Continents.csv')

data_csv = pd.read_csv(url_data)

data_csv.head()