繁体   English   中英

Python:如何根据列表变量从 data_frame 中删除行

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM