我有两本词典:

game_data = {
    'game_id': range(1, 6),                
    'title': ('LOL', 'WH40K',
              'WOW', 'POE',
              'KEK'),                      
    'author_id': (1, 1, 2, 3, 5),           
    'genre_id': (1, 2, 4, 4, 1),           
    'price': (0, 0, 14, 19, 100)           
}

author_data = {
    'author_id': (1, 2, 3, 4),     
    'author_name': ('Graham McNeill',
                    'Christie Golden',
                    'Nick Jones',
                    'Slaik')       
}

任务是使用上面的字典以这种方式创建数据帧: 新数据帧应仅包含两列:title & author_name:

   title      author_name
0    LOL   Graham McNeill
1  WH40K   Graham McNeill
2    WOW  Christie Golden
3    POE       Nick Jones

我试过了

print(pd.merge(
    df1, df2,
    left_on='title',
    right_on='author_name',
    how='inner'
))

但它不起作用

推荐答案

一种可能的解决方案(应将left_on='title', right_on='author_name'替换为on='title'):

df1 = pd.DataFrame.from_dict(game_data)
df2 = pd.DataFrame.from_dict(author_data)

df1.merge(df2, on='author_id', how='inner')[['title', 'author_name']]

输出:

   title      author_name
0    LOL   Graham McNeill
1  WH40K   Graham McNeill
2    WOW  Christie Golden
3    POE       Nick Jones

Python相关问答推荐

在Python中使用一行try

使用Python和PRNG(不是梅森龙卷风)有效地生成伪随机浮点数在[0,1)中均匀?

使用matplotlib pcolormesh,如何停止从一行绘制的磁贴连接到上下行?

在上下文管理器中更改异常类型

try 在树叶 map 上应用覆盖磁贴

删除任何仅包含字符(或不包含其他数字值的邮政编码)的观察

为什么带有dropna=False的groupby会阻止后续的MultiIndex.dropna()工作?

如何使用LangChain和AzureOpenAI在Python中解决AttribeHelp和BadPressMessage错误?

C#使用程序从Python中执行Exec文件

Godot:需要碰撞的对象的AdditionerBody2D或Area2D以及queue_free?

有没有一种ONE—LINER的方法给一个框架的每一行一个由整数和字符串组成的唯一id?

如何启动下载并在不击中磁盘的情况下呈现响应?

lityter不让我输入左边的方括号,'

在Admin中显示从ManyToMany通过模型的筛选结果

Numpyro AR(1)均值切换模型抽样不一致性

Gekko中基于时间的间隔约束

使用字典或列表的值组合

如何在Python Pandas中填充外部连接后的列中填充DDL值

Django Table—如果项目是唯一的,则单行

在Python中控制列表中的数据步长