📌  相关文章
📜  识别两个数据框 pandas python 之间的公共列(1)

📅  最后修改于: 2023-12-03 15:12:09.386000             🧑  作者: Mango

识别两个数据框 pandas python 之间的公共列

在 pandas 中,我们经常会用到两个数据框进行合并、计算等操作。但是在实际的开发中,我们可能会遇到需要识别两个数据框之间的公共列的情况,这时我们可以利用 pandas 提供的一些方法来实现。

方法一:使用 set 方法

首先,我们可以将两个数据框的列名转换成 set 类型,然后使用 & 运算符求两个 set 的交集,从而得到两个数据框之间的公共列。下面是代码示例:

import pandas as pd

df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]})
df2 = pd.DataFrame({'B': [4, 5, 6], 'C': [7, 8, 9], 'D': [10, 11, 12]})

common_columns = set(df1.columns) & set(df2.columns)

print(common_columns)
# Output: {'B', 'C'}
方法二:使用 intersect1d 方法

另外,我们可以使用 pandas 提供的 intersect1d 方法来求两个数据框之间的公共列,该方法可以直接返回两个数组之间的交集。下面是代码示例:

import pandas as pd

df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]})
df2 = pd.DataFrame({'B': [4, 5, 6], 'C': [7, 8, 9], 'D': [10, 11, 12]})

common_columns = pd.Series(pd.core.algorithms.intersect1d(df1.columns, df2.columns))

print(common_columns)
# Output: 0    B
#         1    C
#         dtype: object
结论

以上是两种识别两个数据框之间公共列的方法,具体使用哪种方法可以根据实际情况来选择。在使用过程中,我们也可以根据实际需求对代码进行适当的修改和完善。