【问题标题】:Why is column name not going over actual column and creating new columns in dataframe?为什么列名不超过实际列并在数据框中创建新列?
【发布时间】:2016-12-08 09:54:46
【问题描述】:

我正在将列名分配给 pandas 中的数据框,但列名正在创建新列我该如何解决这个问题?

现在的数据框是什么样子的:

                                     abs_subdv_cd  abs_subdv_desc
0  A0001A    ASHTON                              ...             NaN
1  A0002A    J. AYERS                            ...             NaN
2  A0003A    NEWTON ALLSUP                       ...             NaN
3  A0004A    M. AUSTIN                           ...             NaN
4  A0005A    RICHARD W. ALLEN                    ...             NaN

我想要的数据框是什么样的:

 abs_subdv_cd  abs_subdv_desc
0  A0001A    ASHTON                              
1  A0002A    J. AYERS                            
2  A0003A    NEWTON ALLSUP                       
3  A0004A    M. AUSTIN                           
4  A0005A    RICHARD W. ALLEN   

到目前为止的代码:

import pandas as pd

###Declaring path###
path = ('file_path')

###Calling file in folder###
appraisal_abstract_subdv = pd.read_table(path + '/2015-07-28_003820_APPRAISAL_ABSTRACT_SUBDV.txt',
                             encoding = 'iso-8859-1' ,error_bad_lines = False,
                             names = ['abs_subdv_cd','abs_subdv_desc'])
print(appraisal_abstract_subdv.head())

-编辑-

当我尝试appearance_abstract_subdv.shape..时,数据框显示形状为(4000,1),其中数据有两列。

我正在使用的数据示例:

A0001A    ASHTON                                  
A0002A    J. AYERS

提前谢谢你。

【问题讨论】:

    标签: pandas dataframe python-3.5


    【解决方案1】:

    您的数据文件似乎有另一个分隔符(不是 TAB,它是 pd.read_table() 的默认分隔符),因此请尝试使用:sep='\s+'delim_whitespace=True 参数。

    为了在读取数据文件后检查您的列,请执行以下操作:

    print(df.columns.tolist())
    

    【讨论】:

      【解决方案2】:

      pandas 中有一个 rename 函数可以用来获取列名

      appraisal_abstract_subdv.columns.values
      

      然后使用这些列名使用此方法适当地重命名它们

      df.rename(columns={'OldColumn1': 'Newcolumn1', 'OldColumn2': 'Newcolumn2'}, inplace=True)
      

      【讨论】:

      • 但是数据没有列所以我不能重命名它。我只是想给它命名。当我去尝试 df.shape 时,它​​只显示一列,其中有两列。不知道为什么会这样。在主要问题中添加它
      • appraisal_abstract_subdv.columns.values 获取名称
      • 我不知道为什么,但是文件是用一列读取的,当我重命名它时给我错误“长度不匹配:预期轴有 1 个元素,新值有两个”不知道为什么它的读数数据文件为两列而不是 1。
      • 您正在从 .txt 文件中读取它吗?列之间是否有逗号? .txt 文件中可能没有分隔符,因此它将每一行作为一列读取
      • 正确读取文本文件,但您的权利没有分隔符,我需要修复数据。但会标记你回答正确。
      猜你喜欢
      • 2023-04-02
      • 2021-06-25
      • 1970-01-01
      • 1970-01-01
      • 2019-08-07
      • 1970-01-01
      • 1970-01-01
      • 2016-04-20
      • 1970-01-01
      相关资源
      最近更新 更多