假设我有一个数据框(按第 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()
