我才是小宝啊 发表于 2020-12-8 10:10:54

"'str' object has no attribute 'iloc'"

df4:
S0G                S1G                 S2G              S3G        L1G        L2G       L3G
[无异常]        [异常1]                                             [异常2]
如果L3G不为空,输出L3G值,如果L3G为空,L2G不为空则输出L2G值,以此类推......
def get_result(S0G,S1G,S2G,S3G,L1G,L2G,L3G):
    if pd.notnull(L3G):
      return L3G
    elif pd.notnull(L2G):
      return L2G
    elif pd.notnull(L1G):
      return L1G
    elif pd.notnull(S3G):
      return S3G
    elif pd.notnull(S2G):
      return S2G
    elif pd.notnull(S1G):
      return S1G
    else:
      return S0G
df4['最终输出结果'] = df4.apply(lambda x:get_result(x['S0G'].iloc,x['S1G'].iloc,x['S2G'].iloc,x['S3G'].iloc,x['L1G'].iloc,x['L2G'].iloc,x['L3G'].iloc),axis=1)

最后:AttributeError: ("'str' object has no attribute 'iloc'", 'occurred at index 0')
请问这是什么问题?如何解决呀?

suchocolate 发表于 2020-12-8 12:21:21

本帖最后由 suchocolate 于 2020-12-8 12:26 编辑

x['S0G']取出的是字符串,df4的原始数据能提供一下吗?上面的格式看的不准哪个空哪个不空。

我才是小宝啊 发表于 2020-12-10 10:20:01

suchocolate 发表于 2020-12-8 12:21
x['S0G']取出的是字符串,df4的原始数据能提供一下吗?上面的格式看的不准哪个空哪个不空。

已解决,x['S0G']就已经把需要的字符串取出来了,iloc是多余的

疾风怪盗 发表于 2020-12-10 10:57:52

看你这个写法,很奇怪啊,既然用了自定义函数,用了apply,怎么还用lambda传入?直接用函数来操作处理不行么?
页: [1]
查看完整版本: "'str' object has no attribute 'iloc'"