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

ste*_*ess 5 python dataframe pandas

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

然而,下面的代码:

from pandas import read_csv

dataset = read_csv('USrealGDPGrowthPred_Quarterly.txt', header=0)
dataset.drop('DATE', axis=1)    
Run Code Online (Sandbox Code Playgroud)

结果出现此错误消息:

ValueError: labels ['DATE'] not contained in axis
Run Code Online (Sandbox Code Playgroud)

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

在此输入图像描述

这里发生了什么?我怎样才能摆脱那个专栏?

更新:

下面的代码:

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

不会导致错误消息,但也不会删除该列。数据看起来就像什么都没发生一样。

jez*_*ael 6

所以有2个问题:

\n\n

首先需要将分隔符更改为tab,因为read_csv默认值已sep=\',\'注释 @c\xe1\xb4\x8f\xca\x9f\xe1\xb4\x85s\xe1\xb4\x98\xe1\xb4\x87\xe1\xb4\x87\xe1\ xb4\x85:

\n\n
df = read_csv(\'USrealGDPGrowthPred_Quarterly.txt\', header=0, sep=\'\\t\')\n
Run Code Online (Sandbox Code Playgroud)\n\n

或者使用read_table默认值sep=\'\\t\'

\n\n
df = df.read_table(\'USrealGDPGrowthPred_Quarterly.txt\', header=0)\n
Run Code Online (Sandbox Code Playgroud)\n\n

然后将输出分配回或inplace=True用于drop

\n\n
dataset = dataset.drop(\'DATE\', axis=1)\n
Run Code Online (Sandbox Code Playgroud)\n\n

或者:

\n\n
dataset.drop(\'DATE\', axis=1, inplace=True)`\n
Run Code Online (Sandbox Code Playgroud)\n