Python 如何获取dataframe列元素的唯一列表?
我正在尝试获取pandas dataframe列中每个唯一字符串的列表:Python 如何获取dataframe列元素的唯一列表?,python,pandas,dataframe,Python,Pandas,Dataframe,我正在尝试获取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) ##
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)
这将给出下一个输出:
[nan, nan, nan, nan, nan]
[nan, nan, nan, nan, nan]
预期输出可能如下所示:
['director', 'president', 'vice president']
['sales director', 'sales vice president']
我错过了什么?
是否有其他方法来完成此任务?使用groupby比迭代唯一代码更容易:
catalog.groupby("code").title.apply(list)
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
试一试
catalog.groupby('code')['title'].unique()
code
A001 [director, president, vice president]
A002 [sales director, sales vice president]
Name: title, dtype: object
试一试
catalog.groupby('code')['title'].unique()
code
A001 [director, president, vice president]
A002 [sales director, sales vice president]
Name: title, dtype: object
您的代码存在一个问题,即在分配
title
变量时比较完整的数据帧,而不是与列进行比较:
for code in codes:
titles = catalog[catalog['code'] == code]['title'].tolist()
print(titles)
或:
您的代码存在一个问题,即在分配
title
变量时比较完整的数据帧,而不是与列进行比较:
for code in codes:
titles = catalog[catalog['code'] == code]['title'].tolist()
print(titles)
或:
我可能错了,但基于OP的尝试,看起来他们想要每个
code
的所有值的列表,而不仅仅是每个code
@sacuL问题标题的唯一值~我可能错了,但是基于OP的尝试,看起来他们想要每个code
的所有值的列表,不仅仅是每个代码中的唯一值
@sacuL问题标题混乱~只是想澄清一下,您想要一个代码中每个唯一值的所有值的列表,对吗?因此,如果在codeA001
中有两行director
,则生成的列表将有director
两次?是的,这是必须澄清的想法,您希望在code
中为每个唯一值列出所有值,对吗?因此,如果在codeA001
中有两行director
,则生成的列表将有两次director
?是的,这就是想法