Python 如何使用第二个数据帧中的值填充新列,但取决于当前数据帧中使用熊猫的不同现有列
我创建了一个信息表,它非常长(想想近100个观察值或不到100个)。我有一个主表(大约70K onservations),我需要在其中创建一个新列,并根据两个数据帧之间的匹配值填充它,但我需要用信息表中的数据填充新列和单元格 我创建了一个小数据集,但我的真实数据集(我不能共享,因为我的教授签署了一个非双闭合数据集)有大约70K个观测值 数据_1(信息表) 数据2(原始表格) 所需数据帧Python 如何使用第二个数据帧中的值填充新列,但取决于当前数据帧中使用熊猫的不同现有列,python,pandas,dataframe,Python,Pandas,Dataframe,我创建了一个信息表,它非常长(想想近100个观察值或不到100个)。我有一个主表(大约70K onservations),我需要在其中创建一个新列,并根据两个数据帧之间的匹配值填充它,但我需要用信息表中的数据填充新列和单元格 我创建了一个小数据集,但我的真实数据集(我不能共享,因为我的教授签署了一个非双闭合数据集)有大约70K个观测值 数据_1(信息表) 数据2(原始表格) 所需数据帧 Name Animal Age Fed [new column] Binxy
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
以及使用一些bloonean值有关。我要口头上说:
merge
可能会起作用,但我不确定它是否会为每个匹配值填充它。我不太擅长合并,因为我很难理解连接特性,但我认为不会在需要的地方插入值,因为我的数据帧长度不同
编辑:我以前没有手动操作过,但我只需要填写两到三个值,我不想手动操作100。但这是我的基本理解
New_Categorized_Full.loc[
(New_Categorized["Produce"] == "Apple"), "Fruit"] = "Fuji"
使用
series.map
df2['Fed'] = df2.Animal.map(dict(df1[['Animal','Food']].to_numpy()))
Out[10]:
Name Animal Age Fed
0 Binxy Dog 1 Stake
1 Al Rabbit 4 Carrot
2 Sam Dog 11 Stake
3 Dexter Cat 9 Fish
4 Dory Hamster 6 NaN
5 Chloe Cat 5 Fish
~z~谢谢!它毫无问题地工作了!非常感谢!出于兴趣-通常如何将示例数据转换为数据帧?当以这种方式发布时,它似乎不那么简单,但我想知道是否有一种快速的方法可以将那里的输出转换为数据帧,例如。@baxx:高亮显示整个示例数据,然后通过
ctrl+C
或鼠标复制。在交互式python提示符中运行以下命令:df=pd.read\u剪贴板(r'\s+)
。阅读此问题了解更多信息:
New_Categorized_Full.loc[
(New_Categorized["Produce"] == "Apple"), "Fruit"] = "Fuji"
df2['Fed'] = df2.Animal.map(dict(df1[['Animal','Food']].to_numpy()))
Out[10]:
Name Animal Age Fed
0 Binxy Dog 1 Stake
1 Al Rabbit 4 Carrot
2 Sam Dog 11 Stake
3 Dexter Cat 9 Fish
4 Dory Hamster 6 NaN
5 Chloe Cat 5 Fish