2
我通过韦斯麦金尼的的Python数据分析学习Python和大熊猫。第2章中的一个示例是movie_id中MovieLens数据的合并,该数据无效。我认为问题在于,在评级中,movie_id是一个int64,在电影中它是一个对象。合并返回一个空的数据框。熊猫据帧合并问题
我看了一些关于熊猫和自动数据类型分配以前的职位,发现pandas.io.parsers.read_table文档中的D型,但不能获得类型改变。
原始代码:
mnames = ['movie_id', 'title', 'genres']
movies = pd.read_table('ch02/movielens/movies.dat', sep='::', header=None, names=mnames)
什么我的研究表明什么应该工作:
movies = pd.read_table('ch02/movielens/movies.dat', sep='::', header=None, names=mnames, dtype={'movie_id':np.int64})
不幸的是,该类型不发生变化,合并仍然会返回一个空集。我正在大熊猫0.10.1
FWIW书代码适合我。要排除一个固定的错误,你能否确认你正在运行熊猫0.10.1? – DSM 2013-04-04 13:10:33
在[83]: 进口大熊猫 打印 “熊猫版本:”,熊猫.__ version__ 熊猫版本:0.10.1 – wayne 2013-04-04 13:36:03
奇怪,然后。我在影片数据框中的'movie_id'系列是'Name:movie_id,Length:3883,dtype:int64',看起来是正确的,并且合并的行为与您期望的相同。 – DSM 2013-04-04 13:39:59