Python:如何基于列表变量从data_frame中删除行



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

<表类> 名称 年龄 夹克 鞋子房子tbody><<tr>史蒂夫xx艾比xgreg>xx

使用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

您可以使用df。

df.loc[:, [x for x in list(df.columns.values) if x in equipment]]

":";意思是你要取所有行。对于列,您可以使用列表推导式,从数据框中选择也出现在列表中的所有列。

最新更新