[英]Python: How to remove rows from a data_frame based on a list variable
我有一个名为 device equipment = ['helmet', 'shoes', 'jacket']
的列表 object 并且我有一个DataFrame()
,它最初是一个 excel 电子表格
姓名 | 年龄 | 夹克 | 鞋 | 屋 |
---|---|---|---|---|
史蒂夫 | X | X | ||
艾比 | X | |||
格雷格 | X | X |
我想制作一个 function ,它接收一个 data_frame 和一个列表,并删除列表中未提及的所有列。 所以前面的表格看起来像这样:
夹克 | 鞋 | 屋 |
---|---|---|
X | X | |
X | ||
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.loc 来实现您的期望:
df.loc[:, [x for x in list(df.columns.values) if x in equipment]]
“:” 表示您要获取所有行。 对于列,您可以使用列表理解,select dataframe 中的所有列也出现在您的列表中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.