从pandas数据帧中删除某些不在列表中的值可以通过以下步骤实现:
import pandas as pd
# 加载数据帧
df = pd.DataFrame({'A': [1, 2, 3, 4, 5],
'B': [6, 7, 8, 9, 10],
'C': [11, 12, 13, 14, 15]})
# 创建要保留的值列表
keep_values = [2, 4, 6, 8, 10]
isin()
函数检查每个列中的值是否在保留值列表中,并将结果赋给一个布尔索引:# 检查每个列中的值是否在保留值列表中
bool_index = df.isin(keep_values)
any()
函数将布尔索引沿着列方向进行逻辑或运算,以确定哪些行包含要保留的值:# 沿着列方向进行逻辑或运算,确定哪些行包含要保留的值
keep_rows = bool_index.any(axis=1)
# 使用布尔索引来过滤数据帧,只保留包含要保留的值的行
filtered_df = df[keep_rows]
最终,filtered_df
将是一个新的数据帧,其中只包含原始数据帧中包含在保留值列表中的值。
这种方法可以用于任何大小的数据帧,并且适用于多个列。如果要删除不在列表中的值而不是保留它们,只需将布尔索引取反即可。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云