Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何过滤dataframe列中的数字字符串列表?_Python_Pandas - Fatal编程技术网

Python 如何过滤dataframe列中的数字字符串列表?

Python 如何过滤dataframe列中的数字字符串列表?,python,pandas,Python,Pandas,假设我不能直接访问d(并且d可能包含比所示更多的行),我希望过滤col1中编码的值,以便所有数值都位于指定的间隔内。假设间隔为[40,45],那么预期结果为: d = {'col1': "{35.1, 43.76, 41.5, 38.71}", 'col2': [3, 4]} df = pd.DataFrame(data=d) 以一种优雅的python方式,这有可能吗?literal\u eval 从ast导入文字\u评估 pred=lambda x:40literal\u eval 从ast

假设我不能直接访问d(并且d可能包含比所示更多的行),我希望过滤col1中编码的值,以便所有数值都位于指定的间隔内。假设间隔为[40,45],那么预期结果为:

d = {'col1': "{35.1, 43.76, 41.5, 38.71}", 'col2': [3, 4]}
df = pd.DataFrame(data=d)
以一种优雅的python方式,这有可能吗?

literal\u eval
从ast导入文字\u评估
pred=lambda x:40
literal\u eval
从ast导入文字\u评估

pred=lambda x:40使用
literal_val
转换为
set
map
转换和过滤条件如下:

from ast import literal_eval

pred = lambda x: 40 <= x <= 45
lamb = lambda s: str({*filter(pred, literal_eval(s))})
df.assign(col1=df.col1.apply(lamb))

            col1  col2
0  {41.5, 43.76}     3
1  {41.5, 43.76}     4
导入ast

df['col1']=df.col1.map(λx:{item for item in ast.literal_eval(x)if(40使用
literal_val
转换为
set
map
转换和过滤条件如下:

from ast import literal_eval

pred = lambda x: 40 <= x <= 45
lamb = lambda s: str({*filter(pred, literal_eval(s))})
df.assign(col1=df.col1.apply(lamb))

            col1  col2
0  {41.5, 43.76}     3
1  {41.5, 43.76}     4
导入ast
df['col1']=df.col1.map(lambda x:{item for item in ast.literal_eval(x)if(40
import ast

df['col1'] = df.col1.map(lambda x: {item for item in ast.literal_eval(x) if (40<=item <=45)})


Out[1734]:
            col1  col2
0  {43.76, 41.5}     3
1  {43.76, 41.5}     4