Python 使用dataframe中的行值查询第二个dataframe中的列

Python 使用dataframe中的行值查询第二个dataframe中的列,python,pandas,dataframe,Python,Pandas,Dataframe,我希望传递df['A']中的值,以确定df2中具有df1中的行值的列标题的空值计数和唯一值计数 df A B C AA 1 2 AB 1 3 AC 1 2 df2 AA AB AC X Null F Null R F Null R Y 代码的输出应如下所示: df1 A B C NullCount UniqueCount AA 1 2 2 1 AB 1

我希望传递
df['A']
中的值,以确定
df2
中具有
df1
中的行值的列标题的空值计数和唯一值计数

df
A    B    C
AA   1    2
AB   1    3
AC   1    2


df2
AA    AB    AC
X     Null  F
Null  R     F
Null  R     Y
代码的输出应如下所示:

df1
A    B    C    NullCount UniqueCount
AA   1    2    2         1
AB   1    3    1         1
AC   1    2    0         2

我考虑过定义一个函数,然后将其应用于
df1
,但我不确定这是否是最好的方法。我是python新手,非常感谢您的帮助。

v0.20
开始,您可以使用
agg
+
merge

df

    A  B  C
0  AA  1  2
1  AB  1  3
2  AC  1  2

df2

    AA   AB AC
0    X  NaN  F
1  NaN    R  F
2  NaN    R  Y
或者,您可以使用lambda将
计数
计算组合为一个步骤:

df3 = df2.agg([lambda x: x.size - x.count(), 'nunique']).T
df3.columns = ['NullCount', 'UniqueCount']

    A  B  C  NullCount  UniqueCount
0  AA  1  2          2            1
1  AB  1  3          1            1
2  AC  1  2          0            2
请注意,您可能需要将字符串“Null”转换为
nan
。您可以通过
replace
调用:

df2 = df2.replace("Null", np.nan)

v0.20
开始,您可以使用
agg
+
merge

df

    A  B  C
0  AA  1  2
1  AB  1  3
2  AC  1  2

df2

    AA   AB AC
0    X  NaN  F
1  NaN    R  F
2  NaN    R  Y
或者,您可以使用lambda将
计数
计算组合为一个步骤:

df3 = df2.agg([lambda x: x.size - x.count(), 'nunique']).T
df3.columns = ['NullCount', 'UniqueCount']

    A  B  C  NullCount  UniqueCount
0  AA  1  2          2            1
1  AB  1  3          1            1
2  AC  1  2          0            2
请注意,您可能需要将字符串“Null”转换为
nan
。您可以通过
replace
调用:

df2 = df2.replace("Null", np.nan)

节日快乐,我的朋友:-)非常感谢你的帮助!假期快乐,我的朋友:-)非常感谢你的帮助!这太棒了。