Вы можете сделать что-то вроде:
df1 = pd.DataFrame([
(0, "A"),
(1, "B"),
(2, "C"),
(3, "D")
], columns=["id", "val"])
df2 = pd.DataFrame([
(0, "A"),
(1, "A"),
(2, "A"),
(3, "D")
], columns=["id", "val"])
df3 = pd.DataFrame([
(0, "A"),
(1, "A"),
(2, "A"),
(3, "A")
], columns=["id", "val"])
from functools import reduce
dfs = [df1, df2, df3]
val = reduce(
lambda acc, x: np.intersect1d(acc, x['val']),
dfs,
dfs[0]['val']
)
val
# array(['A'], dtype=object)