Pandas 为什么列名不超过实际列并在dataframe中创建新列?
我正在为pandas中的数据帧分配列名,但列名正在创建新列。我如何解决这个问题 dataframe现在看起来是什么样子:Pandas 为什么列名不超过实际列并在dataframe中创建新列?,pandas,dataframe,python-3.5,Pandas,Dataframe,Python 3.5,我正在为pandas中的数据帧分配列名,但列名正在创建新列。我如何解决这个问题 dataframe现在看起来是什么样子: abs_subdv_cd abs_subdv_desc 0 A0001A ASHTON ... NaN 1 A0002A J. AYERS ...
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
我希望dataframe看起来像:
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())
-编辑-
当我尝试评估\u abstract\u subdv.shape.时,数据框将shape显示为(4000,1),其中as数据有两列
我使用的数据示例如下:
A0001A ASHTON
A0002A J. AYERS
提前谢谢。熊猫中有一个重命名功能,您可以使用它来获取列名
appraisal_abstract_subdv.columns.values
然后使用这些列名使用此方法适当地重命名它们
df.rename(columns={'OldColumn1': 'Newcolumn1', 'OldColumn2': 'Newcolumn2'}, inplace=True)
看起来您的数据文件有另一个分隔符(不是制表符,它是
pd.read\u table()
)的默认分隔符),所以请尝试使用:sep='\s+'
或delim\u whitespace=True
参数
要在读取数据文件后检查列,请执行以下操作:
print(df.columns.tolist())
但是数据没有列,所以我不能重命名它。我只想说出它的名字。另外,当我尝试df.shape时,它只显示一列,其中有两列。不知道为什么会这样。将其添加到主要问题
evaluation\u abstract\u subdv.columns.values
中以获取名称我不知道为什么,但文件是用一列读取的,当我要重命名它时,会出现错误“长度不匹配:预期轴有1个元素,新值有两个”不确定为什么它会将数据文件作为两列而不是1来读取。您是从.txt文件中读取的吗?列之间是否有逗号?.txt文件中可能没有分隔符,因此它将每行作为一列读取。正确读取文本文件,但您的权限没有分隔符,我需要修复数据。但我会记下你的答案是正确的。