簡體   English   中英

如何獲取唯一 pandas dataframe 列元素的列表?

[英]how to get a list for unique pandas dataframe column elements?

我正在嘗試獲取 pandas dataframe 列中每個唯一字符串的列表:

import pandas as pd

catalog = {'code': ['A001', 'A001', 'A001', 'A002', 'A002'], 'title': ['director', 'president', 'vice president', 'sales director', 'sales vice president']}

catalog=pd.DataFrame(catalog)

## unique column values ##
codes = catalog['code'].unique()

for code in codes:
     titles = catalog[catalog == code]['title'].tolist()
     print(titles)

這給出了下一個 output:

[nan, nan, nan, nan, nan]
[nan, nan, nan, nan, nan]

預期的 output 可能如下所示:

['director', 'president', 'vice president']
['sales director', 'sales vice president']

我錯過了什么? 有沒有其他方法可以完成這項任務?

嘗試

catalog.groupby('code')['title'].unique()
code
A001     [director, president, vice president]
A002    [sales director, sales vice president]
Name: title, dtype: object

與其遍歷唯一代碼,不如使用 groupby 更容易:

catalog.groupby("code").title.apply(list)

code
A001    [director, president, vice president]
A002    [sales director, sales vice president]
Name: title, dtype: object

您的代碼存在問題,您在分配title變量時比較完整的 dataframe,而不是與列進行比較:

for code in codes:
    titles = catalog[catalog['code'] == code]['title'].tolist()
    print(titles)

或者:

for code in codes:
    titles = catalog.loc[catalog['code'] == code,'title'].tolist()
    print(titles)

['director', 'president', 'vice president']
['sales director', 'sales vice president']

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM