【问题标题】:Len function gives incorrect resultsLen 函数给出不正确的结果
【发布时间】:2020-10-05 08:23:07
【问题描述】:

我正在尝试查找列表中的 len,但是当我这样做时,它会给出不正确的结果。不知道为什么或如何解决它。任何建议我的代码可能有什么问题?从照片中您可以从突出显示的行中看到它显示计数为 2,但元素超过 2 个

Photo of code and df

Items per row

前 5 行的项目:

1. ['Unknown,email,transactional,Email - Transactional', 'Unknown,email,transactional,Email - Transactional', 'inspiratie,email,nieuwsbrief,E-mail - Nieuwsbrief', 'inspiratie,email,nieuwsbrief,E-mail - Nieuwsbrief']
  1. ['(未设置),email,transactional,Email - Transactional', '未知,email,transactional,Email - Transactional', '(direct),(none),(not set),Direct']李>
  2. ['Unknown,email,transactional,Email - Transactional', 'Unknown,email,transactional,Email - Transactional']
  3. ['Unknown,email,transactional,Email - Transactional', 'Unknown,email,transactional,Email - Transactional']
  4. ['未知,电子邮件,交易,电子邮件 - 交易','未知,电子邮件,交易,电子邮件 - 交易','未知,电子邮件,交易,电子邮件 - 交易','未知,电子邮件,交易,电子邮件 - 交易', '(未设置),email,transactional,Email - Transactional']

代码:

def calc(path):
    return len(path)

df_journey['path_count']= df_journey.apply(lambda x: calc(x.path), axis=1)

【问题讨论】:

  • 请添加代码sn-p +相关数据而不是图片。另外 - 请显示一个完整的数据示例 - 图片没有显示列表的所有值,所以我们怎么能看到长度不正确?
  • 通过您发布的数据示例+图片 - 似乎项目数量是正确的。对于选定的行(第三) - 列表中只有 2 个元素
  • 但它应该计算它们中的每一个,例如,Unknown=1、email=2 等并将总数相加。所以我不明白为什么它没有像我想象的那样计算列表中的每个元素
  • @GiladGreen 我现在明白你的意思了,是的,它是正确的。但我想计算每个单独的元素。有没有不同的方法来利用 len 函数来做到这一点,还是我需要一种新的方法,比如 for 循环?

标签: python list string-length


【解决方案1】:

我想通了,我先把列放入字符串类型,然后用replace去掉'[]',然后调整我的函数

def calc(path):
return len(path.split(','))

【讨论】:

    猜你喜欢
    • 2020-06-12
    • 2018-01-22
    • 1970-01-01
    • 1970-01-01
    • 2012-08-27
    • 2017-12-14
    • 2019-03-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多