繁体   English   中英

我如何根据另一个具有不同长度但共享列数据的 dataframe 的条件向 dataframe 添加一列

[英]How can i add a column to a dataframe based on a conditional of another dataframe that has a different length, but shared column data

我有两个不同长度和不同列的数据框,但有一个具有相同标识数据的共享列。 他们看起来像这样

观察DF:

指数 科学名称 公园名称 观察
0 姓名1 公园1 10
1个 名字2 公园2 12

物种自由度:

指数 科学名称 通用名称 类别
0 姓名1 名称 1,名称 2 哺乳动物
1个 名字2 名称 1,名称 2 维管植物

我正在尝试在 observatiosn DF 中创建一个名为“category”的新列,该列基于两个表之间共享的 scientific_names 填充数据。 我试过使用 pd.merge 但它没有按照我想要的方式填充类别列。 Concat 也没有。 当我尝试使用列表理解时,它也给了我一个值错误。 有什么想法吗?

我试过像这样使用列表理解:

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

这会导致错误。

如果您只想将species的“类别”列添加到基于共享列“scientific_name”的observations ,这应该可行。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM