Python熊猫:为什么'del df.loc[:,column_name]`不起作用?(即使“del df[column_name]”是这样做的?

Python熊猫:为什么'del df.loc[:,column_name]`不起作用?(即使“del df[column_name]”是这样做的?,python,pandas,Python,Pandas,从数据帧中删除列的最常用方法似乎是deldf[“column\u name”] 然而,del-df.loc[:,column_-name]不起作用,即使df[“column_-name”]和df.loc[:,common_-name]做了基本相同的事情 我真的很好奇,因为我希望有一种同样简单的删除行的方法。行不能通过直接df[]语法访问,所以我必须使用del df.loc[],正如我所描述的,即使我处理一个列,它也不起作用 为什么del-df.loc[:,column\u name]不起作用,即

从数据帧中删除列的最常用方法似乎是
deldf[“column\u name”]

然而,
del-df.loc[:,column_-name]
不起作用,即使
df[“column_-name”]
df.loc[:,common_-name]
做了基本相同的事情

我真的很好奇,因为我希望有一种同样简单的删除行的方法。行不能通过直接
df[]
语法访问,所以我必须使用
del df.loc[]
,正如我所描述的,即使我处理一个列,它也不起作用


为什么
del-df.loc[:,column\u name]
不起作用,即使
del-df[column\u name]
起作用?

至于为什么
del-df.loc[:,column]
不起作用,我想是因为它没有被烘焙到API中,开发人员出于某种原因而放弃了它

,即使是《熊猫》的主要作者Wes也推荐了这本书的
del
,但请参阅其他答案和评论,以便对最佳实践进行更广泛的讨论

你可以用 从文件中

从行或列中删除指定的标签

通过指定标签名称和相应的名称删除行或列 或直接指定索引或列名。使用 多索引、不同级别的标签可以通过指定 级别

放置在命名索引上,为索引指定轴
0
1
用于列。 基于基于整数的索引删除。 删除一列。
我认为删除列最合适的方法是在指定轴时使用
.drop
。行也是如此,
df.drop([0,4,5],0)
@datanovel的确如此,但这是假设你知道索引,有时很难获得。我想你还需要知道
del
用法的列名,但根据我的经验,行索引更难确定,而且通常是我以某种方式搜索的行。那么我想你有一个特定的用例,为什么你不加些数据来说明你的问题吗?我会想出解决办法的。
import pandas as pd
df = pd.DataFrame({'num_legs': [2, 4, 8, 0],

               'num_wings': [2, 0, 0, 0],

               'num_specimen_seen': [10, 2, 1, 8]},

              index=['falcon', 'dog', 'spider', 'fish'])


print(df)

        num_legs  num_wings  num_specimen_seen
falcon         2          2                 10
dog            4          0                  2
spider         8          0                  1
fish           0          0                  8


print(df.drop(['falcon','dog'],0))
        num_legs  num_wings  num_specimen_seen
spider         8          0                  1
fish           0          0                  8
s = pd.Series(list('abca'))

df = pd.get_dummies(s)

print(df)

   a  b  c
0  1  0  0
1  0  1  0
2  0  0  1
3  1  0  0

print(df.drop([0,2],0))

    a   b   c
1   0   1   0
3   1   0   0
print(df.drop(['a'],1))

  b  c
0  0  0
1  1  0
2  0  1
3  0  0