将列名从元组传递到

2024-04-19 22:06:00 发布

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

我的场景是这样的,我使用

nan_cols=tuple(train.columns[train.isnull().sum()>0])

现在,我需要找到这些列和目标变量之间的相关性。所以我试了一些类似的方法

train[[nan_cols,'SalePrice']].corr()并得到以下错误:

KeyError: "[('LotFrontage', 'Alley', 'MasVnrType', 'MasVnrArea', 'BsmtQual', >'BsmtCond', 'BsmtExposure', 'BsmtFinType1', 'BsmtFinType2', 'Electrical', >'FireplaceQu', 'GarageType', 'GarageYrBlt', 'GarageFinish', 'GarageQual', >'GarageCond', 'PoolQC', 'Fence', 'MiscFeature')] not in index"

那么,有没有一种方法可以让我在pandas中将列名作为元组传递呢?我也尝试了同样的列表和序列,但由于它们是可变的,所以没有成功。请建议。你知道吗


Tags: columns方法目标错误场景trainnansum
2条回答

试试下面的一个:

nan_cols=[train.columns[train.isnull().sum()>0])
train[nan_cols + ['SalePrice']].corr()

为什么需要将列作为元组传递。为了索引第二行,我们只需要列的列表。你知道吗

通过这条线

train[[nan_cols,'SalePrice']].corr()

您正在尝试访问。同时[nan_cols,'SalePrice']给出了一个元组和一个对象的列表:[(tuple),object]

一个好的做法是使用loc来定位所需的行/列。要访问专栏,我建议:

train.loc[:,[*nan_cols,'SalePrice']].corr()

或者

train[:,[*nan_cols,'SalePrice']].corr()

有关*运算符的详细信息,请参阅python tutorial

希望有帮助。你知道吗

相关问题 更多 >