我用像这样的管道分隔的CSV读取
test = pd.read_csv("http://kejser.org/wp-content/uploads/2014/06/Country.csv")
test.head()
返回
SK_Country|"Number"|"Alpha2Code"|"Alpha3Code"|"CountryName"|"TopLevelDomain"
0 1|20|"ad"|"and"|"Andorra"|".ad"
1 2|4|"af"|"afg"|"Afghanistan"|".af"
2 3|28|"ag"|"atg"|"Antigua and Barbuda"|".ag"
3 4|660|"ai"|"aia"|"Anguilla"|".ai"
4 5|8|"al"|"alb"|"Albania"|".al"
当我尝试从中提取特定数据时,如下所示:
df = test[["Alpha3Code"]]
我收到以下错误:
KeyError:['Alpha3Code']不在索引
中
我不明白出了什么问题 - 当我打印头时,我可以看到CSV中的值,同样当我打开CSV时,一切看起来都很好。
我已经尝试谷歌并在堆栈上阅读有关此问题的一些帖子并尝试了不同的方法,但似乎没有什么能解决这个烦人的问题。
答案 0 :(得分:1)
注意如何将所有内容都塞进一个字符串列中?那是因为你没有指定将列分隔为pd.read_csv
的分隔符,在这种情况下必须是'|'
。
test = pd.read_csv("http://kejser.org/wp-content/uploads/2014/06/Country.csv",
sep='|')
test.head()
# SK_Country Number Alpha2Code Alpha3Code CountryName \
# 0 1 20 ad and Andorra
# 1 2 4 af afg Afghanistan
# 2 3 28 ag atg Antigua and Barbuda
# 3 4 660 ai aia Anguilla
# 4 5 8 al alb Albania
#
# TopLevelDomain
# 0 .ad
# 1 .af
# 2 .ag
# 3 .ai
# 4 .al
答案 1 :(得分:0)
正如@chrisz的评论所指出的,你必须指定分隔符:
test = pd.read_csv("http://kejser.org/wp-content/uploads/2014/06/Country.csv",delimiter='|')
test.head()
SK_Country Number Alpha2Code Alpha3Code CountryName \
0 1 20 ad and Andorra
1 2 4 af afg Afghanistan
2 3 28 ag atg Antigua and Barbuda
3 4 660 ai aia Anguilla
4 5 8 al alb Albania
TopLevelDomain
0 .ad
1 .af
2 .ag
3 .ai
4 .al