Skip to main content
 首页 » 编程设计

Python:如何查找列中的哪些值在另一个特定列(数据帧)中具有 NaN 值

2025年05月04日8飞鱼

假设我们有如下所示的 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