【发布时间】:2023-02-02 20:07:53
【问题描述】:
我有一个这样的 df:
value_list
0 [200000.00, 100.00, 25.00]
1 [860000.00]
2 [148000.00, 25.00]
我想要一个新的列 filtered_list ,它将过滤掉小于 100 和大于 10000 的值,所以预期结果
value_list filtered_list
0 [200000.00, 100.00, 25.00] [100.00]
1 [860000.00] []
2 [148000.00, 25.00, 9500] [9500]
我怎样才能做到这一点?
我试过的:
df['filtered_list'] = df['value_list'].apply(lambda x: (e for e in x if e > 100 and e < 10000 ))
但这返回了一个生成器对象。请指教。
【问题讨论】:
-
用例会让常规 python 函数完成这项工作,还是必须是 lambada 函数?
-
(e for e in x ..)(带括号)将构建一个生成器,而[e for e in x ...](括号)将构建一个列表