【发布时间】:2021-10-27 02:22:39
【问题描述】:
我的新手与熊猫的斗争仍在继续,所以我想问一下。
我有两个如下所示的 excel 文件:
| id | name | group | lang |
|---|---|---|---|
| 1 | blue | 1 | |
| 2 | azul | 1 | |
| 3 | rojo | 2 | |
| 4 | red | 2 | |
| 5 | green | 3 | |
| 6 | verde | 3 | |
| 7 | yellow | 4 |
列名可能具有第二个 Excel 文件的西班牙语和英语列中不存在的值,而西班牙语和英语列可能具有列名中不存在的值。我想要所有可能的值。
我的第二个文件如下所示:
| english | spanish | group |
|---|---|---|
| blue | azul | 1 |
| red | rojo | 2 |
| green | verde | 3 |
我想要做的是用值填充第一个数据框的最后一列,所以它看起来像这样:
| id | name | group | lang |
|---|---|---|---|
| 1 | blue | 1 | en |
| 2 | azul | 1 | sp |
| 3 | rojo | 2 | sp |
| 4 | red | 2 | en |
| 5 | green | 3 | en |
| 6 | verde | 3 | sp |
| 7 | yellow | 4 |
我一直在尝试这段代码,但它不起作用:
df2 = pd.melt(df2, id_vars=['group'], value_vars=['en', 'sp'], value_name='lan')
merged_df = pd.merge(df1, df2, left_on='lang', right_on='lan')[['name', 'group', 'lang']]
【问题讨论】:
-
df1 和 df2 是否需要在同一组号中才能被视为匹配?对于是否需要此要求/限制,将有不同的可能解决方案。
-
发现一些案例要求我们在匹配 df1 和 df2 时也匹配
group。请参阅下面的编辑。
标签: python python-3.x pandas