我想将与简单条件匹配的每一行从 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/