1
我有一个超市的销售信息的数据框。数据框中的每一行代表一个项目,其中有几个特征作为列。原来的数据帧是这样的:熊猫枢轴或groupby动态生成的列
In [1]: import pandas as pd
my_data = [{'ticket_number' : '001', 'item' : 'tomato', 'ticket_price' : '21'},
{'ticket_number' : '001', 'item' : 'candy', 'ticket_price' : '21'},
{'ticket_number' : '001', 'item' : 'soup', 'ticket_price' : '21'},
{'ticket_number' : '002', 'item' : 'soup', 'ticket_price' : '12'},
{'ticket_number' : '002', 'item' : 'cola', 'ticket_price' : '12'},
{'ticket_number' : '003', 'item' : 'beef', 'ticket_price' : '56'},
{'ticket_number' : '003', 'item' : 'tomato', 'ticket_price' : '56'},
{'ticket_number' : '003', 'item' : 'pork', 'ticket_price' : '56'}]
df = pd.DataFrame(my_data)
In [2]: df
Out [2]:
ticket_number ticket_price item
0 001 21 tomato
1 001 21 candy
2 001 21 soup
3 002 12 soup
4 002 12 cola
5 003 56 beef
6 003 56 tomato
7 003 56 pork
我需要一个数据帧,每一行代表与购买的全部商品和门票价格为列票。在这个例子中:
ticket_number ticket_price item1 item2 item3
0 001 21 tomato candy soup
1 002 12 soup cola
2 003 56 beef tomato pork
我试着用df.groupby(ticket_number).item.value_counts()
,但这并不能创建新列。我从来没有使用pivot_table
,也许它很有用。
任何帮助将不胜感激。
谢谢!
为**转换(您的数据帧)从广角形式长篇**这是已知的。使用这些关键字将会获得比当前标题更好的答案。 – smci
它甚至不仅仅是一个数据透视表,因为你并没有将计数(特别是多个条目,例如多个'糖果')聚合到最终的计数表中,即'糖果','可乐'的单独列。 ..你想要项目未排序(即按发生或购买的顺序),或排序(例如按字母顺序?) – smci