我有一个名为equipment = ['helmet', 'shoes', 'jacket']
的列表对象,我有一个DataFrame()
,它最初是一个excel电子表格
<表类>
名称
年龄
夹克
鞋子房子 tbody><<tr>史蒂夫 x x 艾比 x greg> x x 表类>
使用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]]
":";意思是你要取所有行。对于列,您可以使用列表推导式,从数据框中选择也出现在列表中的所有列。