我想根据列标签获取 pandas 数据帧 df_a
和 df_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/