我试图找到dataframe.columns.difference()的工作,但没有找到令人满意的解释。有人能详细解释一下这种方法的工作原理吗?
发布于 2019-03-01 04:55:51
函数dataframe.columns.difference()为您提供了作为参数提供的值的补充。它可以用于在排除某些列的情况下从现有的dataframe创建一个新的dataframe。让我们看看一个例子:
In [2]: import pandas as pd
In [3]: import numpy as np
In [4]: df = pd.DataFrame(np.random.randn(5, 4), columns=list('ABCD'))
In [5]: df
Out[5]:
A B C D
0 -1.023134 -0.130241 -0.675639 -0.985182
1 0.270465 -1.099458 -1.114871 3.203371
2 -0.340572 0.913594 -0.387428 0.867702
3 -0.487784 0.465429 -1.344002 1.216967
4 1.433862 -0.172795 -1.656147 0.061359
In [6]: df_new = df[df.columns.difference(['B', 'D'])]
In [7]: df_new
Out[7]:
A C
0 -1.023134 -0.675639
1 0.270465 -1.114871
2 -0.340572 -0.387428
3 -0.487784 -1.344002
4 1.433862 -1.656147函数作为输出返回现有列(不包括作为参数的列)的新列列表。您还可以检查它:
In [8]: df.columns.difference(['B', 'D'])
Out[8]: Index(['A', 'C'], dtype='object')我建议你看一下官方文档这里。
发布于 2022-09-11 11:57:55
参见下面在“员工流失”数据集上使用dataframe.columns.difference()的示例。在这里,我们希望区分分类列和数值列来执行特征工程。
# Empty list to store columns with categorical data
categorical = []
for col, value in attrition.iteritems():
if value.dtype == 'object':
categorical.append(col)
# Store the numerical columns in a list
numerical = attrition.columns.difference(categorical)注意,columns.difference()方法返回传递参数的补码,在本例中是数值列。
https://datascience.stackexchange.com/questions/46434
复制相似问题