我有一个如下的df,其中df ['value_list']有dtype
对象:
value_list
0 ['200000.00', '100.00', '25.00']
1 ['860000.00']
2 ['148000.00', '25.00']
我想要一个新的列max_value
这将是最大整数数值的字符串号码内这个名单。所以预期结果为以上:
value_list max_value
0 ['200000.00', '100.00', '25.00'] 200000
1 ['860000.00'] 860000
2 ['148000.00', '25.00'] 148000
我做了什么:
# covert strings to numerical values
df['value_list'] = df['value_list'].apply(lambda x: ast.literal_eval(x))
# get max values from list and if list is empty temporarily assign -1
df['max_value'] = df['value_list'].apply(lambda x: max(x) if len(x) >= 1 else -1)
df['max_value'] = df['max_value'].apply(lambda x: round(float(x)) if x != -1 else None)
这似乎是工作,但我没有真正得到最大值。我得到的结果:
value_list max_value
0 ['200000.00', '100.00', '25.00'] 25
1 ['860000.00'] 860000
2 ['148000.00', '25.00'] 25
有没有更好更正确的方法来做这件事?请指教。
1条答案
按热度按时间g6ll5ycj1#
一种方法是:
产出
如果你有空的列表并且想要返回
-1
,只需执行以下操作: