在python中删除列

在python中删除列,python,pandas,Python,Pandas,我试图删除pandas数据帧中的所有列,除了这几列,但是当我运行此代码时,所有列都被删除。数据集太大了,把它们都列出来会很乏味,有什么想法吗 for columns in df: if not columns == 'Carbohydrates' or columns == 'Description' or columns == '1st Household Weight' or columns == 'Sugar Total' or columns == 'Kilocalories':

我试图删除pandas数据帧中的所有列,除了这几列,但是当我运行此代码时,所有列都被删除。数据集太大了,把它们都列出来会很乏味,有什么想法吗

for columns in df:
    if not columns == 'Carbohydrates' or columns == 'Description' or columns == '1st Household Weight' or columns == 'Sugar Total' or columns == 'Kilocalories':
       df = df.drop(columns, axis = 1)

只需选择要保留的列即可:

df = df[['Carbohydrates','Description','1st Household Weight','Sugar Total','Kilocalories']]

我认为你应该这样使用括号:

if not (columns == 'Carbohydrates' or columns == 'Description' or columns == '1st Household Weight' or columns == 'Sugar Total' or columns == 'Kilocalories'):

您希望保留哪些列?可能的重复删除不好,您可以将所选列指定给变量。像这样:
df=df.loc[:,['a','b']]