选择数据帧之间的补码列

2024-10-01 17:21:19 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有一个熊猫.DataFramexx被馈送给函数filter,并返回{},一个删除了{}中某些列的数据帧。函数是一个黑匣子,列数很大。如何找到“x”中已删除的列?在

或者,y.columnsx.columns的子集,我如何才能找到x中不在{}中的列?在

示例:

x = pd.DataFrame(np.array([[1,2,3],[4,5,6]]))
x.columns = list('abc')
y = x.iloc[:, :2].copy()
>>> x
   a  b  c
0  1  2  3
1  4  5  6
>>> y
   a  b
0  1  2
1  4  5

我希望返回c列。在

我的解决方案是:

^{pr2}$

有没有一种方法可以在不提取列名的情况下得到结果?在

我以为这是一些基本的操作,但我在网上找不到一个简单的答案。在

谢谢。在


Tags: columns数据函数示例dataframenpfilterarray
3条回答

使用sets

x_col = set(x.columns)
y_col = set(y.columns)
x_col.difference(y_col)
>>{'c'}

x_col.difference(y_col)将返回只存在于x_col中而不存在于y_col中的元素

您可以使用numpy进行此操作:

import numpy as np

diff = np.setdiff1d(xc,yc)

或者

但是,最好使用本地方法:

^{pr2}$

使用^{}或pandas^{}作为:

x[x.columns.difference(y.columns)]

或者:

^{pr2}$

这将给出xdataframe中的列值,但不在ydataframe中。在


^{3}$

或者:

print(x[list(set(x.columns)-set(y.columns))])

   c
0  3
1  6

相关问题 更多 >

    热门问题