python - 为什么这个映射 lambda 函数在应用于 pandas 数据框时花费太多时间?

标签 python pandas dataframe

我想将与简单条件匹配的每一行从 df_source 复制到 df_target(其 col1 的值不存在于给定值列表)。

我正在尝试通过执行以下操作来实现此目的:

df_target = df_source[df_source['Col1'].map(lambda x: x not in id_list)].copy()

请记住len(id_list) = 300000,它包含形状HF1D2R的字符串标识符。 数据帧 df_source 还包含 300000 行和 11 列字符串和整数类型。

这需要 10 多分钟才能完成,这里出了什么问题?

最佳答案

使用isin使用 ~ 表示反向 bool 掩码:

df_target = df_source[~df_source['Col1'].isin(id_list)].copy()

关于python - 为什么这个映射 lambda 函数在应用于 pandas 数据框时花费太多时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47310284/

相关文章:

python - 如何在 Python 中获取 BPM 和速度音频功能

python - 迭代更改 Pandas 数据框列中的每个单元格

python - 将时间增量转换为 float64 天数

python - 计算列表中每个项目在 pandas 数据框列中出现的次数,用逗号分隔值以及其他列的附加聚合

r - 如何使用 R 不同地处理子集的第一行和最后一行?

python - 美国人口普查 API - 使用 Python 获取一个州内每个城市的人口

java - 如何找到特定字符串在图像上的位置?

python - 关闭图形的所有子图的轴

python-3.x - python选择子集,其中df列值包含数组中的值之一

r - 将向量添加到数据框的列