Python熊猫:一个系列中有多少个值?

时间:2019-05-07 08:08:02

标签: python pandas

我有两个熊猫数据框:

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()

enter image description here

1 个答案:

答案 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()