假设我们有如下所示的 df1:
x1 = [{'partner': "Afghanistan", 'commodity': NaN},
{'partner': "Zambia", 'commodity': 2},
{'partner': "Germany", 'commodity': 2},
{'partner': "Afghanistan", 'commodity': NaN},
{'partner': "Canada", 'commodity': NaN},
{'partner': "Italy", 'commodity': 3},
{'partner': "Canada", 'commodity': NaN},
{'partner': "USA", 'commodity': NaN}]
df1 = pd.DataFrame(x1)
我想做的是查看 partner 中的值列表,这些值在 commodity 中具有 NaN 值,但我没有想要将相同的合作伙伴列出两次。
所以我的首选结果是这样的:
commodity_nan_partners=
Afghanistan
Canada
USA
而不是:
Afghanistan
Afghanistan
Canada
Canada
USA
请您参考如下方法:
loc + isnull + drop_duplicates
您可以过滤您的系列,然后删除重复项:
res = df1.loc[df1['commodity'].isnull(), 'partner'].drop_duplicates()
print(res)
0 Afghanistan
4 Canada
7 USA
Name: partner, dtype: object
