使用pandas-drop()删除列 - 函数不起作用

时间:2018-01-06 20:20:26

标签: python pandas dataframe

我有一个包含时间序列数据的文件。从这个文件我想删除第一列(包含日期)。

但是,以下代码:

from pandas import read_csv

dataset = read_csv('USrealGDPGrowthPred_Quarterly.txt', header=0)
dataset.drop('DATE', axis=1)    

导致出现此错误消息:

ValueError: labels ['DATE'] not contained in axis

但是:标签包含在文件中,如屏幕截图所示。

enter image description here

这里发生了什么?我该怎样摆脱那一栏?

更新:

以下代码:

dataset = read_csv('USrealGDPGrowthPred_Quarterly.txt', header=0, sep='\t')
dataset.drop('DATE', axis=1)    
print(dataset.head(5))

不会导致错误消息,但也不会删除列。数据似乎没有发生。

1 个答案:

答案 0 :(得分:1)

所以有两个问题:

首先需要更改分隔符到tab,因为read_csv默认sep=','已注释为@cᴏʟᴅsᴘᴇᴇᴅ:

df = read_csv('USrealGDPGrowthPred_Quarterly.txt', header=0, sep='\t')

或使用默认sep='\t'的{​​{3}}:

df = df.read_table('USrealGDPGrowthPred_Quarterly.txt', header=0)

然后分配输出或使用read_table中的inplace=True

dataset = dataset.drop('DATE', axis=1)

或者:

dataset.drop('DATE', axis=1, inplace=True)`