【问题标题】:ValueError when trying to convert Dictionary to DataFrame Pandas尝试将 Dictionary 转换为 DataFrame Pandas 时出现 ValueError
【发布时间】:2020-03-29 17:27:44
【问题描述】:

我有一本这样的字典:

{'6DEC19': 0.61, '13DEC19': 0.58, '27DEC19': 0.63, '31JAN20': 0.66, '27MAR20': 0.69, '26JUN20': 0.71}

我非常简单地尝试将其转换为 DataFrame,其列为 6DEC19、13DEC19 等,然后将索引设置为当前日期和时间,我将使用该代码作为pd.Timestamp.now().floor('60min').

生成的df 如下所示:

                    6DEC19  13DEC19  27DEC19  31JAN20  27MAR20  26JUN20
2019-12-04 20:00:00 0.61    0.58     0.63     0.66     0.69     0.71

我的第一步是将字典转换为数据框,就我而言,这段代码应该可以解决问题:

df = pd.DataFrame.from_dict(dict)

但我收到此错误消息:ValueError: If using all scalar values, you must pass an index。

我真的不知道这里有什么问题?任何建议都会很棒,如果有人能解决将索引更改为降价的问题,那就更好了。干杯

【问题讨论】:

标签: python pandas dictionary


【解决方案1】:

试试这个

newDF = pd.DataFrame(yourDictionary.items())

【讨论】:

    【解决方案2】:

    试试这个:

    import pandas as pd
    
    a = {'6DEC19': [0.61], '13DEC19': [0.58], '27DEC19': [0.6], '31JAN20': [0.66], '27MAR20': [0.69], '26JUN20': [0.71]}
    
    df = pd.DataFrame.from_dict(a)
    
    print(df)
    

    【讨论】:

      【解决方案3】:

      正如错误消息所说,您需要指定索引,因此您可以执行以下操作:

      import pandas as pd
      
      d = {'6DEC19': 0.61, '13DEC19': 0.58, '27DEC19': 0.63, '31JAN20': 0.66, '27MAR20': 0.69, '26JUN20': 0.71}
      df = pd.DataFrame(d, index=[pd.Timestamp.now().floor('60min')])
      
      print(df)
      

      输出

                           6DEC19  13DEC19  27DEC19  31JAN20  27MAR20  26JUN20
      2019-12-04 17:00:00    0.61     0.58     0.63     0.66     0.69     0.71
      

      【讨论】:

      • 这很好,谢谢伙计,为什么添加索引会阻止错误?为什么不能一开始就将索引设置为 0?再次感谢
      • @topbantz 我相信这是一个实施决定,不能肯定地说。
      猜你喜欢
      • 2020-11-02
      • 2021-12-12
      • 1970-01-01
      • 1970-01-01
      • 2022-06-11
      • 2010-12-05
      • 1970-01-01
      • 2021-02-05
      • 1970-01-01
      相关资源
      最近更新 更多