首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么lambda没有工作属性“值”?

为什么lambda没有工作属性“值”?
EN

Stack Overflow用户
提问于 2022-05-07 10:04:02
回答 1查看 42关注 0票数 0

这个df2'CLINE_TYPE‘

代码语言:javascript
复制
Increase_FALSE
Decrease
Increase_FALSE
Increase_SUPERPOSITION
Decrease_FALSE
Increase
Increase_SUPERPOSITION
Decrease_FALSE
Increase
Increase_SUPERPOSITION

这一职能:

代码语言:javascript
复制
def nearest(lst, target):
  return min(lst, key=lambda x: abs(x-target))

我需要从lamda获得一个值,我得到了一个错误:'AttributeError:'str‘对象没有属性值’value‘

所有代码:

代码语言:javascript
复制
import pandas as pd
import numpy as np
import re

def nearest(lst, target):
  return min(lst, key=lambda x: abs(x-target))

    df2['res']=np.nan
    
    df2['res'] = df2['CLINE_TYPE'].apply(lambda x: nearest(df2.loc[df2['CLINE_TYPE'].str.contains('Increase')].index.to_list(), x.name)
                                        if bool(re.match(r'Decrease', x.values))==True else
                                        nearest(df2.loc[df2['CLINE_TYPE'].str.contains('Decrease')].index.to_list(), x.name))
    
    print(df2[['CLINE_TYPE','res']])

查找列表中最近的最小索引

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-07 10:32:02

Series.apply将串联中的值传递给函数,因此通常它没有任何属性。由于您希望访问行索引,所以您需要的是DataFrame.apply

代码语言:javascript
复制
df2['res'] = df2.apply(lambda row: nearest(df2.loc[df2['CLINE_TYPE'].str.contains('Increase')].index.to_list(), row.name)
                       if bool(re.match(r'Decrease', row['CLINE_TYPE']))==True else
                       nearest(df2.loc[df2['CLINE_TYPE'].str.contains('Decrease')].index.to_list(), row.name), axis=1)
代码语言:javascript
复制
print(df2[['CLINE_TYPE','res']])

               CLINE_TYPE  res
0          Increase_FALSE    1
1                Decrease    0
2          Increase_FALSE    1
3  Increase_SUPERPOSITION    4
4          Decrease_FALSE    3
5                Increase    4
6  Increase_SUPERPOSITION    7
7          Decrease_FALSE    6
8                Increase    7
9  Increase_SUPERPOSITION    7
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72151463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档