pandas - 删除或过滤 pandas dataframe 中的列

我想从我的 dataframe 中过滤一些列。最简单的方法是使用“喜欢”的方法(因为我有很多列要删除)。我尝试了 df = df.filter(['a', 'b']) ,就像这里建议的那样:https://stackoverflow.com/questions/45846189/how-to-delete-all-columns-in-dataframe-except-certain-ones

但是当我这样做时,我所有的专栏都会消失......我不知道我的错误在哪里。

data = pd.concat([pd.read_table(f, encoding='unicode_escape')
                   .add_suffix(f[+47:-4]) # add prefix  
           for f in file_list], axis=1)
    main_dataframe = pd.DataFrame(data)
    main_dataframe = pd.concat([main_dataframe, data], axis = 1)

main_dataframe = main_dataframe.filter(like='date_')

回答1

您的问题似乎有点不清楚,但如果您想删除一些列,但不是全部,并且您有大量列,此代码将允许您轻松控制要从 dataframe 中删除的列并且动态地

data = {
    'Column1' : [1, 2, 3, 4, 5],
    'Column2' : [10, 20, 30, 40, 50],
    'Column3' : [100, 200, 300, 400, 500]
}

df = pd.DataFrame(data)
new_column_list = df.columns.drop(['Column3', 'Column2']).tolist()
df = df[new_column_list]
df

这只是一个示例,因此您可能需要对其进行一些修改,但这应该足以让您开始过滤掉一些不需要的列。

相似文章