我创建了一个信息表,它很长(想想将近 100 次观察或不到)。我有一个主表(大约 70K 保留),我需要在其中创建一个新列并根据我的两个数据框之间的匹配值填充它,但我需要用我的信息表中的数据填充单元格的新列。
我创建了一个小数据集,但我的真实数据集(我无法分享,因为我的教授签署了保密协议)有 70K 的观察结果。
data_1(信息表)
Animal Food
Dog Stake
Cat Fish
Rabbit Carrot
数据2(原表)
Name Animal Age
Binxy Dog 1
Al Rabbit 4
Sam Dog 11
Dexter Cat 9
Dory Hamster 6
Chloe Cat 5
所需的数据帧
Name Animal Age Fed [new column]
Binxy Dog 1 Stake
Al Rabbit 4 Carrot
Sam Dog 11 Stake
Dexter Cat 9 Fish
Dory Hamster 6 NaN
Chloe Cat 5 Fish
我的直觉告诉我,这可能与iloc或loc使用一些布隆值有关。口头上我会说:
- 如果 data_2["Animal"] == data_2["Animal"]
- 然后用在 data_1["Food"] 中找到的相应食物填充新列 data_2["Fed"]
我认为merge可能有效,但我不确定它是否会为每个匹配值填充它。我不太擅长合并,因为我很难理解连接功能,但我认为不会在我需要的地方插入值,因为我的数据框长度不同。
编辑:我以前没有手动,但我只填写了两个或三个值,我不想手动为 100 执行此操作。但这是我的基本理解。
New_Categorized_Full.loc[
(New_Categorized["Produce"] == "Apple"), "Fruit"] = "Fuji"