删除 DataFrame 中的列时,我使用:
del df['column_name']这很有效。为什么我不能使用以下?
del df.column_name 由于您可以使用df.column_name访问列 / Series,我希望这可以工作。
在 pandas 中执行此操作的最佳方法是使用drop :
df = df.drop('column_name', 1)其中1是轴编号( 0表示行, 1表示列。)
要删除列而不必重新分配df您可以执行以下操作:
df.drop('column_name', axis=1, inplace=True)最后,要按列号而不是列标签删除,请尝试删除,例如第 1 列,第 2 列和第 4 列:
df = df.drop(df.columns[[0, 1, 3]], axis=1) # df.columns is zero-based pd.Index
正如您所猜测的那样,正确的语法是
del df['column_name']很难使del df.column_name只是因为 Python 中的语法限制而工作。 del df[name]被 Python 翻译成df.__delitem__(name) 。
使用:
columns = ['Col1', 'Col2', ...]
df.drop(columns, inplace=True, axis=1)这将就地删除一个或多个列。请注意,在 pandas v0.13 中添加了 inplace inplace=True ,并且不适用于旧版本。在这种情况下,你必须重新分配结果:
df = df.drop(columns, axis=1)