[英]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.