我有两个DF1和DF2,如下所述。两个dataframe的第一列“POS”可能有匹配项,但其他列将不同。我想比较两个数据帧的“POS”列,如果DF1的“POS”值在DF2“POS”列中,那么我希望将该行存储在新的DF1 dataframe中,并对DF2执行相同的操作。我可以很容易地用字典来保存POS作为键并比较它们以得到相应的值。但是字典不接受重复的'POS'值,所以我想知道在Pandas DF中是否有解决方案。在
df1 =
POS id freq
0 100 "idex" 3.0
1 102 "ter" 2.0
2 102 "pec" 4.0
3 103 "jek" 4.0
4 104 "jek" 4.0
df2 =
POS id freq
0 100 "treg" 3.0
1 102 "dfet" 2.2
2 102 "idet" 7.0
3 108 "jeik" 1.0
4 109 "jek" 4.0
Expected:
new_df1 =
POS id freq
0 100 "idex" 3.0
1 102 "ter" 2.0
2 102 "pec" 4.0
new_df2 =
POS id freq
0 100 "treg" 3.0
1 102 "dfet" 2.2
2 102 "idet" 7.0
您可以对两个数据帧使用
isin
:我相信你在描述一个典型的连接问题。 我建议使用
.merge()
方法:df = pd.merge(df1, df2, how='left', on='POS')
这将返回一个以df1.POS作为索引的新数据帧。df2中的所有列都将位于df1中,但仅适用于匹配的POS值。您可以在中使用
how=
参数来获得所需的内容。有关详细信息,请参见types of sql joins相关问题 更多 >
编程相关推荐