【发布时间】:2019-04-25 18:49:46
【问题描述】:
我正在尝试从字典中创建一个 pandas 数据框。字典键是字符串,值是 1 个或多个列表。我遇到了一个奇怪的问题,其中 pd.DataFrame() 命令始终返回一个空数据帧,即使我将它传递给一个非空对象(如列表或字典)也是如此。 我的代码类似于以下:
myDictionary = {"ID1":[1,2,3], "ID2":[10,11,12],[2,34,11],"ID3":[8,3,12]}
df = pd.DataFrame(myDictionary, columns = ["A","B","C"])
所以我想创建一个如下所示的 DF:
A B C
ID1 1 2 3
ID2 10 11 12
ID2 2 34 11
ID3 8 3 12
当我检查 df 的内容时,我得到“Empty DataFrame”,如果我遍历它的内容,我只得到列名,而 myDictionary 中没有任何数据!我检查了文档,这应该是一个简单的命令:
pd.DataFrame(dict, columns)
这并没有让我得到我正在寻找的结果,我很困惑为什么。有人有想法么?谢谢!
【问题讨论】:
-
你想用 ID2 做什么?这不是字典的正确键:值对。
-
嗨,我正在尝试创建一个字典,其中每个 ID 都有一个或多个列表。所以我可以有同一个 ID 的多条记录,我想将它们组合在同一个键下。所以我猜这些值将是一个列表列表!例如 {"ID2":[[list1],[list2]]} 这有意义吗?
-
没有。如果是这种情况,您需要将其列为一个列表,并确保将 nan 值添加到 ID1 和 ID2 以确保它们都具有相同数量的值,否则将无法编译。
-
嗨,我刚刚编辑了我的问题以包含我想要的数据框。我明白你对 NaN 的看法。这将使每个键具有相同数量的值。一个问题是我不会提前知道一个 ID 是否有 1 个列表或 2 个或 3 个等。
-
IIUC,
"ID2":[10,11,12],[2,34,11]应该是"ID2":[[10,11,12],[2,34,11]]。