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