【问题标题】:Error upon DataFrame.set_index : only integer scalar arrays can be converted to a scalar indexDataFrame.set_index 出错:只有整数标量数组可以转换为标量索引
【发布时间】:2021-03-26 11:50:23
【问题描述】:

我显示我的 DataFrame 'df_totals' 我得到以下输出:

       Value    Month
0   -63585.86   Grand Total

接下来,我尝试将 Month 列设置为索引。所以我这样做:

df_totals.set_index(['Month'], append=False, inplace=True)

在我的代码中它崩溃了。 于是我尝试在外面重现调试,但是我没有重现……

但是,当我尝试构建一个简化的测试用例时,我没有遇到任何问题:

df = pandas.DataFrame({"Value": [-63585.86], "Month" : ["Grand Total"]})
df.set_index(['Month'], append=False, inplace=True)
display(df)

继续进行此分析的最佳方法是什么? 通常,我认为 DataFrame 的定义在某些时候会有所不同。

在这种情况下这个错误是什么意思?

【问题讨论】:

    标签: pandas dataframe indexing


    【解决方案1】:

    可以将 pandas 转储为字符串:

    print( "df = pd.DataFrame( %s )" % (str(df_totals.to_dict())) )
    

    多亏了这一点,我能够确定我的 df 是按以下方式构建的:

    df = pandas.DataFrame( {('Value',): {0: -63585.85999999999}, ('Month',): {0: 'Grand Total'}} )
    

    因此这条线

    df[("Month",)]
    

    导致崩溃。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-05-29
      • 2021-07-15
      • 2021-01-27
      • 2019-04-26
      • 2017-12-15
      • 2021-10-31
      • 1970-01-01
      相关资源
      最近更新 更多