Python 使用熊猫从目录列表中删除重复项

Python 使用熊猫从目录列表中删除重复项,python,pandas,dataframe,dictionary,group-by,Python,Pandas,Dataframe,Dictionary,Group By,我正在尝试从没有重复项的数据帧中提取字典 以下是数据帧: {'Country': {0: 'Japan', 1: 'China', 2: 'USA', 3: 'Russia', 4: 'Japan', 5: 'Japan', 6: 'China'}, 'Port': {0: 'Yokohama', 1: 'Ningbo', 2: 'Baltimore', 3: 'Moscow', 4: 'Tokyo', 5: 'Tokyo', 6: 'Shanghai'}} 我将国家设置为键并删除了重复项

我正在尝试从没有重复项的数据帧中提取字典

以下是数据帧:

{'Country': {0: 'Japan', 1: 'China', 2: 'USA', 3: 'Russia', 4: 'Japan', 
5: 'Japan', 6: 'China'}, 'Port': {0: 'Yokohama', 1: 'Ningbo', 2: 
'Baltimore', 3: 'Moscow', 4: 'Tokyo', 5: 'Tokyo', 6: 'Shanghai'}}
我将国家设置为键并删除了重复项。现在我需要从列表中删除重复项

import pandas as pd
a ={'Country': {0: 'Japan', 1: 'China', 2: 'USA', 3: 'Russia', 4: 'Japan', 
5: 'Japan', 6: 'China'}, 'Port': {0: 'Yokohama', 1: 'Ningbo', 2: 
'Baltimore', 3: 'Moscow', 4: 'Tokyo', 5: 'Tokyo', 6: 'Shanghai'}}

a_dict=a.groupby(['Country'])['Port'].apply(list).to_dict()
print(a_dict)
输出:

{'China': ['Ningbo', 'Shanghai'], 'Japan': ['Yokohama', 'Tokyo', 
'Tokyo'], 'Russia': ['Moscow'], 'USA': ['Baltimore']}
预期产出:

{'China': ['Ningbo', 'Shanghai'], 'Japan': ['Yokohama', 'Tokyo'], 
'Russia': ['Moscow'], 'USA': ['Baltimore']}
与代码一起使用:

d = df.drop_duplicates().groupby(['Country'])['Port'].apply(list).to_dict()

print(d)
{'China': ['Ningbo', 'Shanghai'], 'Japan': ['Yokohama', 'Tokyo'], 
 'Russia': ['Moscow'], 'USA': ['Baltimore']}
与代码一起使用:

d = df.drop_duplicates().groupby(['Country'])['Port'].apply(list).to_dict()

print(d)
{'China': ['Ningbo', 'Shanghai'], 'Japan': ['Yokohama', 'Tokyo'], 
 'Russia': ['Moscow'], 'USA': ['Baltimore']}
GroupBy.apply
with
set
如果您不关心您的输出是列表的dict或集合的dict,那么这将简化为

df.groupby('Country')['Port'].apply(set).to_dict()

defaultdict
GroupBy.apply
with
set
如果您不关心您的输出是列表的dict或集合的dict,那么这将简化为

df.groupby('Country')['Port'].apply(set).to_dict()

defaultdict