0

我是 Python 的初学者。我想将所有以 DType 作为对象的列名提取到一个单独的列表中,以作为数据处理的一部分进行编码。我试过的是下面的代码,但得到一个错误

l=[]
for i in dataset.columns[i.dtype == 'object']:
    l.append(i)

----> 1 for i in dataset.columns[dataset.dtype == 'object'] 中的 AttributeError Traceback(最近一次调用):2 print(i)

D:\Anaconda\InstallationFolder\lib\site-packages\pandas\core\generic.py in getattr (self, name) 5137 if self._info_axis._can_hold_identifiers_and_holds_name(name): 5138 return self[name] -> 5139 return object。getattribute (self, name) 5140 5141 def setattr (self, name: str, value) -> 无:

AttributeError: 'DataFrame' 对象没有属性 'dtype' dataset.info() 给出以下内容:

 #   Column             Non-Null Count  Dtype  
---  ------             --------------  -----  
 0   Loan_ID            614 non-null    object 
 1   Gender             601 non-null    object 
 2   Married            611 non-null    object 
 3   Dependents         599 non-null    object 
 4   Education          614 non-null    object 
 5   Self_Employed      582 non-null    object

请帮我解决这个错误。我希望在单独的列表中具有对象数据类型的列名。

4

3 回答 3

0

或尝试使用选择列.select_dtypes()

col_list = df_flights.select_dtypes(include=['object']).columns.to_list()
于 2021-06-27T16:15:49.927 回答
0

尝试这个:

columns = [column for column in dataset.columns if dataset[column].dtype == 'object']
于 2021-06-27T16:01:56.257 回答
0

使用 pandas 时,如果您使用 for 循环,您可能做错了什么。

dataset.dtypes[dataset.dtypes == "object"].index.values
于 2021-06-27T15:58:07.117 回答