Python TypeError:从控制台运行时,“zip”类型的对象没有 len()

问题描述 投票:0回答:1

使用以下代码检查 SG 和 PL 列是否存在 IT01 + 8 的组合,如果存在,则将 PL 列中的值从 8 更改为 6。如果不是,则保留原始值。

cm_full_df['PL'] = np.where(cm_full_df.set_index(['SG', 'PL']).index.isin(zip(['IT01'],[8])), 6, cm_full_df['PL'])

我能够在 VS Code 中顺利运行它,没有任何问题,但是当我通过 CMD 控制台运行它时,我收到 TypeError:

类型错误:“zip”类型的对象没有 len()

所以数据集不会改变,但我运行脚本的方式要么引发错误,要么不引发错误。有人可以建议吗?

python pandas
1个回答
0
投票

不确定为什么您会得到不一致的结果...但是,我可以修复您的错误。

我建议用

zip()
包裹
list()
,因为
zip()
返回
iterator
,而不是
iterable
isin()
正在等待
iterable
。请参阅
isin()
文档
格式是我自己的)。

Index.isin(values, level=None)

参数:

  • values
    :设置或类似列表
  • level
    :str 或 int,可选
© www.soinside.com 2019 - 2024. All rights reserved.