我有两个熊猫数据框:
df1 = pd.DataFrame(
{
"col1": ["1","2",np.nan,"3"],
}
)
df2 = pd.DataFrame(
{
"col1": [2.0,3.0,4.0,np.nan],
}
)
我想知道df2.col1中存在多少个df1.col1值。在这种情况下,我希望"2"
和2.0
相等时应该为2。
我确实有一个可行的解决方案,但是因为我想我会更经常(出于学习目的,出于某种原因)需要这样做,所以我想问问您是否有更舒适的方法来做到这一点。
df1.col1[df1.col1.notnull()].isin(df2.col1[df2.col1.notnull()].astype(int).astype(str)).value_counts()
答案 0 :(得分:1)
如果使用integers
和缺少值,请使用Series.dropna
并转换为浮点数:
a = df1.col1.dropna().astype(float).isin(df2.col1.dropna()).value_counts()
或者:
a = df1.col1.dropna().isin(df2.col1.dropna().astype(int).astype(str)).value_counts()