【发布时间】:2021-04-22 06:07:15
【问题描述】:
我之前发布过类似的问题,但我认为最好以另一种方式详细说明。例如,我有一个分配给数字的化合物数据框,如下所示:
复合,数字
17alpha_beta_SID_24898755,8
2_prolinal_109328,3
4_chloro_4491,37
5HT_144234_01,87
5HT_144234_02,2
6-OHDA_153466,23
此外,还有另一个具有其他属性的数据框以及化合物名称,但不仅具有相应的数字,而且在某些行中,化合物名称被分配给不同的数字 - 这些存在差异的情况并不感兴趣的:
rmsd,chemplp,plp,compound,number
1.00,14.00,-25.00,17alpha_beta_SID_24898755,7
0.38,12.00,-19.00,17alpha_beta_SID_24898755,8
0.66,16.00,-25.6,17alpha_beta_SID_24898755,9
0.87,24.58,-38.35,2_prolinal_109328,3
0.17,54.58,-39.32,2_prolinal_109328,4
0.22,22.58,-32.35,2_prolinal_109328,5
0.41,45.32,-37.90,4_chloro_4491,37
0.11,15.32,-37.10,4_chloro_4491,38
0.11,15.32,-17.90,4_chloro_4491,39
0.61,38.10,-45.86,5HT_144234_01,85
0.62,18.10,-15.86,5HT_144234_01,86
0.64,28.10,-25.86,5HT_144234_01,87
0.64,16.81,-10.87,5HT_144234_02,2
0.14,16.11,-10.17,5HT_144234_02,3
0.14,16.21,-10.17,5HT_144234_02,4
0.15,31.85,-24.23,6-OHDA_153466,23
0.13,21.85,-34.23,6-OHDA_153466,24
0.11,11.85,-54.23,6-OHDA_153466,25
问题是我想从数据框 2 中的数据框 1 中找到每个化合物及其对应的数字,并返回它的整行。
我只能做到这一点(但由于在这种情况下迭代的方式,它不符合我的意图): 将 numpy 导入为 np 导入 csv 将熊猫导入为 pd
for c1,n1,c2,n2 in zip(df1.compound,df1.number,df2.compound,df2.number):
if c1==c2 and n1==n2:
print(df2[*])
- 我想打印包含 c1==c2 和 n1==n2 的整行。
示例:对于数据帧 1 中的 17alpha_beta_SID_24898755(化合物)8(其编号),返回在数据帧 2 中找到该化合物和该编号的行。结果应为:
0.38,12.00,-19.00,17alpha_beta_SID_24898755,8
我想对 dataframe1 中的所有化合物及其对应的数字执行此操作。我给出的例子只是一个极其广泛的列表中的一小部分。如果有人可以帮忙,谢谢!
【问题讨论】:
标签: python pandas dataframe numpy iteration