多个数据框的内部联接

时间:2020-01-16 22:45:56

标签: pandas dataframe inner-join

Get all table values if match in 2 other tables exists的问题相同,但尝试在Python / pandas中进行相同的操作,因为在写入SQLite DB时我无法在pandas中设置PK / FK(df.to_sql没有API这样做), SQL太慢。

我有一个数据框“渠道”。

channelId
a
b
c
d

数据帧“视频”

videoId | channelId
1       | a
2       | b
3       | c
4       | e

数据框“注释”

commentID | videoID | videoID_channelID
xx        | 1       | a
yy        | 2       | b
zz        | 5       | e
tt        | 6       | f

键是:

  • channel.channelId = video.channelId = comment.videoID_channelID
  • video.videoId = comment.videoID

我需要:

  • 所有带有至少1个视频和1条评论的频道
  • 所有带有至少1个频道和1条评论的视频
  • 所有评论以及视频和频道

因此,我想进行3个内部联接,每个内部引用联接2。

channelId
a
b

videoId | channelId
1       | a
2       | b

commentID | videoID | videoID_channelID
xx        | 1       | a
yy        | 2       | b

我知道我可以对2个数据帧进行内部联接,例如:

pd.merge(channel, video, left_on='channelId', right_on='channelId', how='inner')

但是如何为具有不同索引的3个数据帧做到这一点?

0 个答案:

没有答案