【问题标题】:'method' object is not subscriptable - Pandas“方法”对象不可下标 - Pandas
【发布时间】:2022-02-14 16:28:02
【问题描述】:

我有以下两行代码

temp['AD_Free_Cancel'] = temp[(temp['ISFREEPOLICY']=='N') & (temp['PRODUCT'].isin['SAD1','SAD2','SAD3','SAD4','SADFR1','SADFR2','SIAD']) & (temp['POLICYSTATUS']=='C')]

temp['AD_Paid_Cancel'] = temp[(temp['ISFREEPOLICY']!='N') & (temp['PRODUCT'].isin['SAD1','SAD2','SAD3','SAD4','SADFR1','SADFR2','SIAD']) & (temp['POLICYSTATUS']=='C')]

谁能帮我理解错误,我该如何解决?谢谢你

【问题讨论】:

  • .isin([ 中缺少(
  • 打错了,所以关闭

标签: python pandas dataframe methods jupyter-notebook


【解决方案1】:

那是因为 isin() 是 Series 的函数,但您使用它就像 .isin[] ..., 可以替换为isin(...),如下:

temp['AD_Free_Cancel'] = temp[(temp['ISFREEPOLICY']=='N') & (temp['PRODUCT'].isin('SAD1','SAD2','SAD3','SAD4','SADFR1','SADFR2','SIAD')) & (temp['POLICYSTATUS']=='C')]

temp['AD_Paid_Cancel'] = temp[(temp['ISFREEPOLICY']!='N') & (temp['PRODUCT'].isin('SAD1','SAD2','SAD3','SAD4','SADFR1','SADFR2','SIAD')) & (temp['POLICYSTATUS']=='C')]

如果你使用like isin[...],Python会认为它是一种可下标的变量,比如一个列表(例如,a1,a[2] ...)

【讨论】:

  • 我在 isin 函数 temp['AD_Free_Cancel'] = temp[(temp['ISFREEPOLICY']=='N') & (temp['PRODUCT'].isin([' SAD1','SAD2','SAD3','SAD4','SADFR1','SADFR2','SIAD'])) & (temp['POLICYSTATUS']=='C')] temp['AD_Paid_Cancel'] = temp[(temp['ISFREEPOLICY']!='N') & (temp['PRODUCT'].isin(['SAD1','SAD2','SAD3','SAD4','SADFR1','SADFR2 ','SIAD'])) & (temp['POLICYSTATUS']=='C')] 但现在出现错误“错误的项目数超过 12,位置暗示 1”请帮助
  • @MithileshTiwari 在没有任何背景知识的情况下,真的很难猜测为什么会发生这种情况。正如我猜测的那样,temp['AD_Free_Cancel'] 是一个系列,但您似乎正试图将具有 12 列的 Dataframe 分配到具有 1 列的 Series 中。这在逻辑上是错误的。见stackoverflow.com/a/43216241/1779532
【解决方案2】:

你有错误,因为 isin() 是一个函数,但你将它用作 .isin[],它应该是 isin()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-18
    • 1970-01-01
    • 1970-01-01
    • 2020-02-04
    • 2016-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多