Skip to main content
 首页 » 编程设计

python之从排序数据框中提取列值的有效方法

2025年05月04日20think

假设我有一个数据框(按第 1 列排序)df:

column1   column2 
1           'Yes' 
1           'No' 
2           'Yes' 
3           'Yes' 
3           'Yes' 
3           'Yes' 

对于第 1 列中的每个值,我想知道它在第 2 列中的可能值,并将这些键值对存储在一个结构中。

例如,给定上面的df,我想要一个像这样的结构

{1: ['yes','No']; 2: ['Yes'], 3:['Yes']} 

我做了类似的事情

for key in df[column1].unique.tolist(): 
   values = df.loc[df[column1] == key]][column2].unique().tolist() 
   dict.add((key, values)) 

但是由于我原来的df很大,这个方法耗时太长。 由于 df 是按 column1 排序的,我想知道是否有更有效的方法来实现这一点。

谢谢!

请您参考如下方法:

用duplicates去除冗余数据,然后按一列groupby,取唯一值,保存到dict:

final_dict = df.drop_duplicates().groupby('column1')['column2'].unique().to_dict()