[英]How to get unique values of a dataframe column when there are lists - python
[英]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.groupby
與list
到Series
,然后將其轉換為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.