【问题标题】:Missing 1 required position argument: 'self'缺少 1 个必需的位置参数:'self'
【发布时间】:2026-02-12 10:20:06
【问题描述】:

我对此有疑问: 我收到错误“

bar() 缺少 1 个必需的位置参数:'self'

" 我试过摆弄这些类(使用它们而不是使用它们)和 self 变量,但我什么都没有。函数 bar() 来自我导入的 pandas 库以及数据框 (df) 对象。我已经附上了我的代码的主要功能和发生错误的功能。

def createDataframe(assessments):
    df = pd.DataFrame
    for review in assessments:   
        for skills in review.skillList:
            for skill in skills:
                tmp = pd.DataFrame({str(skill[:2]): [skill[3:]]})
                df.merge(tmp, how = 'right', right=tmp)
    return df

def plotData(df):
    ax = df.plot.bar(x='1.')
    plt.show()

def main():
    # Ensure proper CMD Line Arg
    if len(sys.argv) > 3:
        print("Error!")
        return 1
    assessments = dataParse()
    df = createDataframe(assessments)
    plotData(df)

欢迎任何帮助!告诉我!

编辑: 正如 tdy 在下面的评论中所说。我需要添加括号来创建一个实例。现在我没有收到任何错误,但在打印 df 时我什么也没有,在绘制信息时也没有任何显示

【问题讨论】:

  • 似乎createDataframe 正在返回类pandas.DataFrame,而不是实例。
  • df = pd.DataFrame 需要括号来创建实例:df = pd.DataFrame()
  • 在合并 df 代码中使用 df = df.merge…。该函数返回一个数据框,而不是就地合并。

标签: python pandas positional-parameter


【解决方案1】:

Pandas 数据框没有就地merge 选项。在合并df 时在您的代码中,然后将其分配回df,如下所示:

 df = df.merge(tmp, how=‘right’, right=tmp)

【讨论】:

    最近更新 更多