簡體   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