[英]How can I add a column to a dataframe with a value conditional on another 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.