【发布时间】:2020-03-31 10:27:48
【问题描述】:
要转换为 df 的列表:
final_list = [{'ID1':{'word':'4', 'talk': '4}}, {'ID2': {'cat':'3', 'dog': '3'}}, {'ID3': {'potatoes':'8', 'height': '6'}}]
预期输出
Word Number Category
0 word 4 ID1
1 talk 4 ID1
2 cat 3 ID2
3 dog 3 ID2
4 potatoes 8 ID3
5 height 6 ID3
我已经创建了一个数据框,可以在其中获取所需的 Word 和 Number 列。从这个数据框中,我试图将 final_list 的“类别”键添加为第三列。这显然不起作用,因为我在循环时只得到最后一个关键元素。这只是为了展示我的思路。
我的编码尝试
df = pd.DataFrame([(a, b) for item in another_list for a, b in item.items()],
columns=['Word','Number'])
## add the last desired column (failed attempt)
for item in final_list:
for k,v in item.items():
df_events["Category"] = k
【问题讨论】:
-
(1) 第一个代码示例(定义
final_list)有语法错误。 (2) 第二个代码示例是指未定义的another_list。 (3) 定义了df,但在第二个代码示例中使用了未定义的df_events。 -
嗨 Michael,我认为 final_list 中的语法错误仅仅是因为某些单词没有表示为字符串。它们应该是字符串,在引号之间。
-
对,但您应该提供干净的代码,人们可以使用它来帮助您。
-
其次,我的代码是为了展示我的思路——正如我已经描述的,它基于不同的列表(我不会粘贴整个列表)。我想知道是否有其他方法可以获得预期的输出,即使这意味着忽略我的代码。
标签: python pandas list dictionary nested