python - 如何根据列标签获取数据帧的集合差异?

标签 python python-3.x dataframe

我想根据列标签获取 pandas 数据帧 df_adf_b 的集合差异。考虑df_a

import pandas as pd

df_a = pd.DataFrame(
    columns=[0.1, 0.2, 0.6],
    data=[[59, 10, 50]],
)
df_a
    0.1     0.2     0.6
0   59      10      50

df_b

df_b = pd.DataFrame(
    columns=intervals_b,
    data=[[59, 20, 50]],
)
    0.1     0.4     0.6
0   59      20      50

。我如何获得预期的设定差异df_a

    0.2
0   10

并且w.r.t。 df_b

    0.4
0   20

最佳答案

我建议您使用 numpy 库中提供的 setdiff1d。

对于差异 b:

import numpy

df_a_b = pd.DataFrame(columns=np.setdiff1d(df_a.columns, df_b.columns),data=df_a[np.setdiff1d(df_a.columns, df_b.columns)])

print(df_a_b)
    0.2
0   10

b diff a 的情况几乎相同:

df_b_a = pd.DataFrame(columns=np.setdiff1d(df_b.columns, df_a.columns),data=df_b[np.setdiff1d(df_b.columns, df_a.columns)])

print(df_b_a)
    0.4
0   20

关于python - 如何根据列标签获取数据帧的集合差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58876924/

相关文章:

python - 快速高效的pandas groupby sum操作

python - HTTPS 请求导致 Windows 中使用 Python 3 重置连接

python - 用转置版本填充矩阵

python - 在此程序中使用 try 和 except 在此 python 中

django - Geodjango 创建一个新的 SRID

python - 替换所有列 pandas df 中的多个字符

python - 如何阻止 Tabula 自动删除空列?

python - 沿多边形边界随机采样点

python - 编写交互式 FTP 登录脚本

Python del 语句