繁体   English   中英

如何使用数据框列中的唯一值创建列表列表?

[英]How to create a list of lists using unique values in a dataframe column?

我有一个如下的数据框,其中一张票有多个与之关联的项目。

| ticket_no | items |
|-----------|-------|
| 1         | Item1 |
| 1         | Item2 |
| 2         | Item3 |
| 2         | Item4 |
| 3         | Item5 |
| 3         | Item6 |
| 3         | Item7 |
| 3         | Item8 |

需要输出如下。

[[Item1, Item2],[Item3, Item4], [Item5, Item6, Item7, Item8]]

我试过下面的代码。 它有效,但速度非常慢。

data = pd.read_csv('data.csv')
item_list = []
for ticket_no in data['ticket_no'].unique():
    temp_data = list(data[data['ticket_no'] == ticket_no]['items'])
    if len(temp_data) == 1:
        pass
    else:
        item_list.append(temp_data)

有没有更快的方法来做到这一点?

使用DataFrame.groupbylistSeries ,然后将其转换为list s - 输出是嵌套列表:

item_list = data.groupby('ticket_no')['items'].apply(list).tolist()
print (item_list)
[['Item1', 'Item2'], ['Item3', 'Item4'], ['Item5', 'Item6', 'Item7', 'Item8']]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM