【发布时间】:2018-08-10 00:47:54
【问题描述】:
我正在尝试对我的数据(带有字典的列表)进行结构化,为此我使用了 pandas df。
我试图在不使用 pandas 的情况下进行复制,我尝试使用 zip 和 pop,但我无法达到与使用 pandas df 所获得的相似的任何内容。
即使使用 pandas df pivot,输出也是我想要的,但我失去了“名称”,我希望为所有名称结构化数据。
我的问题是我可以在不使用 pandas 的情况下获得类似的输出吗?为什么它没有为所有名称打印一个表格?
rec =[{'date': u'2018-01-21', 'name' : u'John', 'fieldname': u'lunch', 'fieldvalue': u'10'},
{'date': u'2018-01-21', 'name' : u'John', 'fieldname': u'dinner', 'fieldvalue': u'9'},
{'date': u'2018-01-22', 'name' : u'John', 'fieldname': u'lunch', 'fieldvalue': u'11'},
{'date': u'2018-01-22', 'name' : u'John', 'fieldname': u'dinner', 'fieldvalue': u'8'},
{'date': u'2018-01-23', 'name' : u'John', 'fieldname': u'lunch', 'fieldvalue': u'12'},
{'date': u'2018-01-23', 'name' : u'John', 'fieldname': u'dinner', 'fieldvalue': u'5'}]
[{'date': u'2018-01-21', 'name' : u'Anna', 'fieldname': u'lunch', 'fieldvalue': u'11'},
{'date': u'2018-01-21', 'name' : u'Anna', 'fieldname': u'dinner', 'fieldvalue': u'8'},
{'date': u'2018-01-22', 'name' : u'Anna', 'fieldname': u'lunch', 'fieldvalue': u'13'},
{'date': u'2018-01-22', 'name' : u'Anna', 'fieldname': u'dinner', 'fieldvalue': u'9'},
{'date': u'2018-01-23', 'name' : u'Anna', 'fieldname': u'lunch', 'fieldvalue': u'11'},
{'date': u'2018-01-23', 'name' : u'Anna', 'fieldname': u'dinner', 'fieldvalue': u'15'}]
[{'date': u'2018-01-21', 'name' : u'John', 'fieldname': u'lunch', 'fieldvalue': u'14'},
{'date': u'2018-01-21', 'name' : u'John', 'fieldname': u'dinner', 'fieldvalue': u'3'},
{'date': u'2018-01-22', 'name' : u'John', 'fieldname': u'lunch', 'fieldvalue': u'16'},
{'date': u'2018-01-22', 'name' : u'John', 'fieldname': u'dinner', 'fieldvalue': u'9'},
{'date': u'2018-01-23', 'name' : u'John', 'fieldname': u'lunch', 'fieldvalue': u'12'},
{'date': u'2018-01-23', 'name' : u'John', 'fieldname': u'dinner', 'fieldvalue': u'9'}]
[{'date': u'2018-01-21', 'name' : u'Brian', 'fieldname': u'lunch', 'fieldvalue': u'11'},
{'date': u'2018-01-21', 'name' : u'Brian', 'fieldname': u'dinner', 'fieldvalue': u'13'},
{'date': u'2018-01-22', 'name' : u'Brian', 'fieldname': u'lunch', 'fieldvalue': u'12'},
{'date': u'2018-01-22', 'name' : u'Brian', 'fieldname': u'dinner', 'fieldvalue': u'8'},
{'date': u'2018-01-23', 'name' : u'Brian', 'fieldname': u'lunch', 'fieldvalue': u'11'},
{'date': u'2018-01-23', 'name' : u'Brian', 'fieldname': u'dinner', 'fieldvalue': u'15'}]
df(rec)
date fieldname fieldvalue name
0 2018-01-21 lunch 10 John
1 2018-01-21 dinner 9 John
2 2018-01-22 lunch 11 John
3 2018-01-22 dinner 8 John
4 2018-01-23 lunch 12 John
5 2018-01-23 dinner 5 John
df(rec).pivot(index='date', columns='fieldname', values='fieldvalue')
fieldname dinner lunch
date
2018-01-21 9 10
2018-01-22 8 11
2018-01-23 5 12
所需的输出:
Anna
fieldname dinner lunch
date
2018-01-21 9 10
2018-01-22 8 11
2018-01-23 5 12
John
fieldname dinner lunch
date
2018-01-21 9 10
2018-01-22 8 11
2018-01-23 5 12
Brian
fieldname dinner lunch
date
2018-01-21 9 10
2018-01-22 8 11
2018-01-23 5 12
【问题讨论】:
-
您希望表格中的行如何排序,其标题应该是什么?
-
我看到的一件事:在
rec中的数据结构中,数据框将只有约翰的数据。 -
@Bill Bell,用假装的输出编辑我的问题。标题应该是日期、晚餐和午餐。并且表的名称应该是名称(即约翰)。
-
你想用这四个字典列表做什么?他们应该在自己的列表中吗?或者可以将它们附加到一个列表中?
-
我的目标是在没有熊猫的情况下以简单的方式重现我使用熊猫数据框获得的表格。 @柯克布罗德赫斯特。
标签: python python-2.7 list pandas dictionary