[英]Mapping names to codes contained in lists of lists
我有以下格式的数据框:
id date item
1 2015-02-01 [0, 2]
2 2015-08-01 [1, 5, 2]
3 2015-07-01 [1, 8, 3]
4 2015-09-01 [8, 1, 0]
我需要将项目编号映射到以下数据框中可用的产品名称:
item product
0 ducky
1 chocolate
2 dog
3 light
4 toy
5 rope
6 shoe
7 shirt
8 table
9 tv
最终的数据框应如下所示:
id date item
1 2015-02-01 [ducky, dog]
2 2015-08-01 [chocolate, rope, dog]
3 2015-07-01 [chocolate, table, light]
4 2015-09-01 [table, chocolate, ducky]
我已经尝试使用一系列 .groupby()、拆垛、重新堆叠、旋转等来做到这一点。我正在寻找一种更实用(优雅)的方法,只需几行代码即可完成。 这是数据复制的一些代码。 非常感激。
orders = pd.DataFrame(
{
'id': [1, 2, 3, 4],
'date': pd.to_datetime(['2015-02-01','2015-08-01','2015-07-01','2015-09-01']),
'item': [[0, 2], [1, 5, 2], [1, 8, 3], [8, 1, 0]]
}
)
items = pd.DataFrame(
{
'item': [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
'product': ['ducky','chocolate','dog','light','toy','rope','shoe','shirt','table','tv']
}
)
我会做这样的事情,假设用索引排序的项目(否则,您可以将索引设置为项目代码):
orders['item'] = [[items.loc[k,'product'] for k in i] for i in orders.item]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.