我正在通过韦斯·麦金尼的python学习蟒蛇和熊猫的数据分析。第2章中的一个例子是MovieLens数据在movie_id上的合并不起作用。我认为问题在于,在评级方面,movie_id是一个int64,而在电影中,它是一个对象。合并返回一个空数据帧。
我以前读过一些关于熊猫和自动数据类型分配的文章,并在pandas.io.parsers.read_table文档中找到了dtype,但是无法改变类型。
原始代码:
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
发布于 2013-04-29 05:34:59
(请注意,我还没有查过书码,只是你的帖子)
首先确认dtype:
print ratings_df.dtypes
print movies_df.dtypes如果您发现它们是不同的类型,可以尝试(假设ratings_df.movie_id是对象而不是int):
ratings_df.movie_id = ratings_df.movie_id.astype(int)看看你的合并现在是否有效。
https://stackoverflow.com/questions/15811414
复制相似问题