从pandas datafram中选择除列列表之外的所有内容

2024-05-14 15:06:03 发布

您现在位置:Python中文网/ 问答频道 /正文

是否可以从pandas数据框中选择给定列表的否定?。例如,假设我有以下数据帧

T1_V2  T1_V3 T1_V4 T1_V5 T1_V6 T1_V7 T1_V8
1     15      3      2     N     B     N         
4     16     14      5     H     B     N            
1     10     10      5     N     K     N  

我想把所有的列,除了T1列和V6列。我通常会这样做:

df = df[["T1_V2","T1_V3","T1_V4","T1_V5","T1_V7","T1_V8"]]

我的问题是有没有别的办法,像这样

df = df[!["T1_V6"]]

Tags: 数据pandasdf列表v3v2v4t1
3条回答

为了完整起见,您还可以很容易地使用drop来完成以下操作:

df.drop(["T1_V6"], axis=1)

如果列名是字符串,则可以这样做:

df[df.columns - ["T1_V6"]]

但是,“set minus”不适用于数字列名,因此这可能是首选的方法(也适用于数字列名):

df[df.columns.difference(["T1_V6"])]

我建议使用DataFrame.drop()

columns_to _exclude = ['T1_V6']
old_dataframe = #Has all columns
new_dataframe = old_data_frame.drop(columns_to_exclude, axis = 1)

您可以使用inplace对原始数据帧本身进行更改

old_dataframe.drop(columns_to_exclude, axis = 1, inplace = True)
#old_dataframe is changed

相关问题 更多 >

    热门问题