Pandas合并方法返回空数据帧

问题描述 投票:-1回答:1

我有两个数据帧,其中包含以下信息:

>>> ratings.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 5 entries, 0 to 4
Data columns (total 4 columns):
id            5 non-null int64
movie_id      5 non-null object
rating        5 non-null object
account_id    5 non-null int64
dtypes: int64(2), object(2)
memory usage: 240.0+ bytes

>> movies.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 296 entries, 0 to 295
Data columns (total 9 columns):
id              296 non-null int64
description     296 non-null object
genre           296 non-null object
imdb_url        296 non-null object
img_url         296 non-null object
title           296 non-null object
users_rating    296 non-null object
year            296 non-null object
movie_id        296 non-null object
dtypes: int64(1), object(8)
memory usage: 20.9+ KB

尽管公共列具有相同的数据类型,但它显示:

>>> pd.merge(ratings,movies)
Empty DataFrame
Columns: [id, movie_id, rating, account_id, description, genre, 
imdb_url, img_url, title, users_rating, year]
Index: []

stackoverflow上的先前答案建议检查数据类型的相似性。但是,由于我的数据类型相同,这个错误的解决方案是什么?

python pandas sqlite
1个回答
0
投票

这是使用['id','movie_id']进行内连接所以如果生成的DF为空,则两个数据帧中id和movie_id的组合没有任何匹配。比较两个数据帧中的不同“id”和“movie_id”组合

movies.groupby(['id', 'movie_id'])['id'].count()
ratings.groupby(['id', 'movie_id'])['id'].count()
© www.soinside.com 2019 - 2024. All rights reserved.