首页 > 解决方案 > Python:如何根据列表变量从 data_frame 中删除行

问题描述

我有一个名为 list 的对象equipment = ['helmet', 'shoes', 'jacket'],我有一个DataFrame(),最初是一个 excel 电子表格

姓名 年龄 夹克
史蒂夫 X X
艾比 X
格雷格 X X

我想创建一个函数,该函数接受一个 data_frame 和一个列表,并删除列表中未提及的所有列。所以前面的表格看起来像这样:

夹克
X X
X
X X

任何帮助,将不胜感激!

标签: pythonpandasdataframe

解决方案


使用 Python 集的好地方。制作一组所有标签,一组您要保留的标签,然后设置差异就是您要删除的标签。放下它们。

# setup -- your code has already done this
import pandas as pd
data_frame = pd.DataFrame(columns=['name', 'age', 'jacket', 'shoes', 'house'])
equipment = ['jacket', 'shoes', 'house']

# relevant code
all_labels = set(data_frame.columns)
drop_labels = all_labels - set(equipment)
df = data_frame.drop(drop_labels, axis=1)  # axis=1 because we drop columns

推荐阅读