我读了我的数据
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从上面的数据框中删除该列?我尝试了以下方法:
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
这个错误通常表明 id 列名在 DataFrame 中并不存在。以下是一些可能的原因和解决方法:
DataFrame
有时,列名可能包含不必要的空格或隐藏字符,导致匹配失败。可以先检查 DataFrame 中的列名:
print(df.columns)
如果列名中有空格(例如 ' id' 或 'id '),可以用 .strip() 清除列名的空格。
' id'
'id '
.strip()
如果列名包含空格,可以使用以下代码重命名列:
df.columns = df.columns.str.strip() # 去除列名中的空格 df = df.drop('id', axis=1) # 然后删除 'id' 列 print(df)
axis
确保 axis=1 被正确设置来删除列,而不是行。你当前的代码是正确的,但如果仍有问题,可以尝试另一种方法:
axis=1
df = df.drop(columns=['id']) print(df)
这种方法等效于 df.drop('id', axis=1),在某些情况下可能更稳定。
df.drop('id', axis=1)