根据匹配项更改列中的值

约翰·PS

我有一个Pandas DataFrame,其中包含巴西大学的名称,但是有些东西我用短途或长途使用这些名称(例如,有时,里约热内卢联邦大学有时被标识为UFRJ)。DataFrame看起来像这样:

| college                                |
|----------------------------------------|
| Universidade Federal do Rio de Janeiro |
| UFRJ                                   |
| Universidade de Sao Paulo              |
| USP                                    |
| Catholic University of Minas Gerais    |

我还有另一本书,在这些单独的栏中分别列出了这些大学中某些(不是全部)大学的简称和长名。看起来像这样:

| long_name                              | short_name |
|----------------------------------------|------------|
| Universidade Federal do Rio de Janeiro | UFRJ       |
| Universidade de Sao Paulo              | USP        |

我想要的是:用长名称替换所有短名称,因此在这种情况下,第一个数据帧会将college列更改为此:

| college                                |
|----------------------------------------|
| Universidade Federal do Rio de Janeiro |
| Universidade Federal do Rio de Janeiro |
| Universidade de Sao Paulo              |
| Universidade de Sao Paulo              |
| Catholic University of Minas Gerais    | <--- note: this one does not have a match, so it stays the same

有没有一种方法可以使用pandas和numpy(或任何其他库)来做到这一点?

耶斯列尔

使用Series.map与第二更换DataFrame,如果没有匹配得到遗漏值,所以补充Series.fillna

df1['college'] = (df1['college'].map(df2.set_index('short_name')['long_name'])
                                .fillna(df1['college']))

print (df1)
                                  college
0  Universidade Federal do Rio de Janeiro
1  Universidade Federal do Rio de Janeiro
2               Universidade de Sao Paulo
3               Universidade de Sao Paulo
4     Catholic University of Minas Gerais

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

根据列表中的匹配项创建列

来自分类Dev

根据列中的匹配项复制行

来自分类Dev

根据Google表格中的两列匹配项返回第三列的值

来自分类Dev

在R中,根据相邻列中字符的匹配项将值替换为NA

来自分类Dev

根据重复项更改熊猫数据框列的值

来自分类Dev

根据数据框列中匹配项的数量进行统计

来自分类Dev

根据不同的条件更改列中的值

来自分类Dev

根据引用更改表的列中的值

来自分类Dev

根据条件更改熊猫中的列值

来自分类Dev

R-根据第二个数据帧中的最接近匹配项分配列值

来自分类Dev

R根据列之间的匹配替换列中的值

来自分类Dev

根据列值删除行中的重复项

来自分类Dev

分组值并根据Pandas中的列删除分组的重复项

来自分类Dev

熊猫-根据特定列中的值删除重复项

来自分类Dev

根据其他列中的值删除重复项

来自分类Dev

根据列值删除数组中的重复项

来自分类Dev

用散列值替换文件中的匹配项

来自分类Dev

根据PHP中的匹配列值合并数组

来自分类Dev

根据Pandas中两列之间的匹配查找值

来自分类Dev

根据匹配值从其他数据框中复制列

来自分类Dev

根据值匹配pandas中的行是不同的列

来自分类Dev

使用 VBA 根据匹配条件替换列中的值

来自分类Dev

pandas - 根据另一列更改列中的值

来自分类Dev

根据数据中的匹配项过滤数据

来自分类Dev

根据数据中的匹配项过滤数据

来自分类Dev

根据条件在数据框列中更改值,在另一列中更改值

来自分类Dev

根据nchar更改列值

来自分类Dev

根据特定列更改数据框中的值

来自分类Dev

熊猫数据框根据条件更改列中的值