【问题标题】:Extracting only object type columns in a separate list from a data-frame in pandas从熊猫的数据框中仅提取单独列表中的对象类型列
【发布时间】:2021-09-10 03:23:28
【问题描述】:

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

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

AttributeError Traceback(最近一次调用最后一次) 在 ----> 1 for i in dataset.columns[dataset.dtype == 'object']: 2 打印(i)

D:\Anaconda\InstallationFolder\lib\site-packages\pandas\core\generic.py in getattr(self, name) 第5137章 5138 返回自我[姓名] -> 5139 返回对象。getattribute(self, name) 5140 5141 def setattr(自我,名称:str,值)->无:

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

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

【问题讨论】:

    标签: pandas dataframe data-preprocessing


    【解决方案1】:

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

    col_list = df_flights.select_dtypes(include=['object']).columns.to_list()
    

    【讨论】:

      【解决方案2】:

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

      dataset.dtypes[dataset.dtypes == "object"].index.values
      

      【讨论】:

      • 我试过它不起作用,我想要的只是单独列表中的对象数据类型的列名。
      • 这应该可以。我在自己的数据框上对其进行了测试。你得到什么错误?这将返回一个“对象”类型的列名数组。
      • 我得到:数组([],dtype=object)。要求是列的列表,例如housingtype,gender 是两个分类列。我想要一个列表为 ['housingtype','gender']
      • 你真的有对象类型的列吗? df.dtypes 返回什么?
      • Loan_ID 对象 性别 对象 已婚对象 家属对象 教育对象
      【解决方案3】:

      试试这个:

      columns = [column for column in dataset.columns if dataset[column].dtype == 'object']
      

      【讨论】:

      • 它给了我一个空白列表
      • 我测试了它并且它工作正常。我上面的回答也有效。请分享您的代码。
      • 我使用了 dataset.info() 并获取了列列表及其数据类型。 as # Column Non-Null Count Dtype --- ------ -------------- ----- 0 Loan_ID 614 non-null object 1 Gender 601 non-null object 2 已婚 611 非空对象 3 家属 599 非空对象 4 教育 614 非空对象 5 自雇人士 582 非空对象
      • dataset.dtypes 返回什么?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-23
      • 2020-12-20
      • 1970-01-01
      • 2021-03-20
      • 1970-01-01
      • 2021-09-20
      • 1970-01-01
      相关资源
      最近更新 更多