尝试将 Dictionary 转换为 DataFrame Pandas 时出现 ValueError
Posted
技术标签:
【中文标题】尝试将 Dictionary 转换为 DataFrame Pandas 时出现 ValueError【英文标题】:ValueError when trying to convert Dictionary to DataFrame Pandas 【发布时间】: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
。
我真的不知道这里有什么问题?任何建议都会很棒,如果有人能解决将索引更改为降价的问题,那就更好了。干杯
【问题讨论】:
重复:this 【参考方案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 我相信这是一个实施决定,不能肯定地说。以上是关于尝试将 Dictionary 转换为 DataFrame Pandas 时出现 ValueError的主要内容,如果未能解决你的问题,请参考以下文章
Xamarin.iOS,将 Dictionary 转换为 NSDictionary
如何将 swift Dictionary 转换为 NSDictionary
将List的String表示形式转换为Dictionary Python
将 [Dictionary<String,Any?>] 转换为 [Dictionary<String,Any!>] ?迅速 3