我有两个包含两种信息的数据框。第一个是按物种列联表的站点,其中包含特定站点中特定物种的计数:
> sp
Sp 1 Sp 2 Sp 3
Site 1 1 2 1
Site 2 0 0 1
Site 3 3 0 0
第二个是这些相同物种的数据框,但带有一个二进制变量,指示该物种是否具有特定属性:
> tr
Tr 1 Tr 2 Tr 3
Sp 1 1 0 0
Sp 2 0 1 0
Sp 3 0 1 1
所需的输出是一个包含站点的新数据框,以及二元性状变量的和乘积 * 该特定站点的物种频率,如下所示:
> fu
Tr 1 Tr 2 Tr 3
Site 1 1 3 1
Site 2 0 1 1
Site 3 3 0 0
任何帮助将不胜感激!我已经坚持了几天了。
我尝试了一些东西,包括 pandas 中的 .mul 函数;然而,跨多个属性匹配物种名称并生成总和产品已被证明是困难的。
这是重新创建上述数据的代码:
sp = pd.DataFrame({"SiteCode": ["Site 1", "Site 2", "Site 3"],
"Sp1": [1, 0, 3],
"Sp2": [2, 0, 0],
"Sp3": [1, 1, 0]})
print(sp)
tr = pd.DataFrame({"SpeciesCode": ["Sp1", "Sp2", "Sp3"],
"T1": [1, 0, 0],
"T2": [0, 1, 1],
"T3": [0, 0, 1]})
print(tr)