pandas 如何根据另一个长度不同但共享列数据的 Dataframe 的条件向 Dataframe 添加列

egdjgwm8  于 2022-11-20  发布在  其他
关注(0)|答案(1)|浏览(137)

我 有 两 个 不同 长度 和 不同 列 的 数据 帧 , 但是 一 个 共享 列 具有 相同 的 标识 数据 。
观察 结果 DF :
| 索引|学名|驻留 名称|观察 值|
| - -| - -| - -| - -|
| 第 0 页|名称 1|公园 1| 10 个|
| 一 个|名称 2|公园 2|十二|
种 属 DF :
| 索引|学名|公用 名|范畴|
| - -| - -| - -| - -|
| 第 0 页|名称 1|名称 1 、 名称 2|哺乳 动物|
| 一 个|名称 2|名称 1 、 名称 2|维 管 植物|
我 试图 在 observatiosn DF 中 创建 一 个 名 为 " category " 的 新 列 , 其中 填充 的 数据 基于 两 个 表 之间 共享 的 scientific _ names 。 我 尝试 使用 pd . merge , 但 它 没有 按照 我 想要 的 方式 填充 category 列 。 Concat 也 没有 。 当 我 尝试 使用 列表 解析 时 , 它 也 给 了 我 一 个 值 错误 。 有 什么 想法 吗 ?
我 试 着 使用 列表 理解 , 如下 所 示 :

observations['category'] = [el for el in species['category'] if observations['scientific_name'] == species['scientific_name]]

中 的 每 一 个
这 会 导致 错误 。

wbgh16ku

wbgh16ku1#

如果您只想根据共享列“scientific_name”将“category”列从species添加到observations,这应该可以实现。

observations = pd.merge(observations, species[['scientific_name', 'category']])

相关问题