小能豆

如何使用 Pandas 从数据框中删除一列?

py

我读了我的数据

import pandas as pd
df = pd.read_csv('/path/file.tsv', header=0, delimiter='\t')
print df

并得到:

          id    text
0    361.273    text1...
1    374.350    text2...
2    374.350    text3...

如何id从上面的数据框中删除该列?我尝试了以下方法:

import pandas as pd
df = pd.read_csv('/path/file.tsv', header=0, delimiter='\t')
print df.drop('id', 1)

但它引发了这个例外:

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

阅读 14

收藏
2024-11-10

共1个答案

小能豆

这个错误通常表明 id 列名在 DataFrame 中并不存在。以下是一些可能的原因和解决方法:

1. 检查列名是否存在

有时,列名可能包含不必要的空格或隐藏字符,导致匹配失败。可以先检查 DataFrame 中的列名:

print(df.columns)

如果列名中有空格(例如 ' id''id '),可以用 .strip() 清除列名的空格。

2. 删除包含空格的列名

如果列名包含空格,可以使用以下代码重命名列:

df.columns = df.columns.str.strip()  # 去除列名中的空格
df = df.drop('id', axis=1)  # 然后删除 'id' 列
print(df)

3. 确认 axis 参数

确保 axis=1 被正确设置来删除列,而不是行。你当前的代码是正确的,但如果仍有问题,可以尝试另一种方法:

df = df.drop(columns=['id'])
print(df)

这种方法等效于 df.drop('id', axis=1),在某些情况下可能更稳定。

2024-11-10