Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 根据另一列中的类别筛选列中的唯一值_Python_Pandas - Fatal编程技术网

Python 根据另一列中的类别筛选列中的唯一值

Python 根据另一列中的类别筛选列中的唯一值,python,pandas,Python,Pandas,我想过滤掉df1 col1中的唯一值,这些唯一值存在于df1 col2中的所有唯一值中。 解决这个问题的好方法是什么 举例说明问题 d = { 'col1': ['alfa','alfa','beta','beta','beta','charlie','delta','delta','echo','foxtrot','foxtrot'], 'col2': ['sweden','norway','norway','sweden','denmark','norway','swe

我想过滤掉df1 col1中的唯一值,这些唯一值存在于df1 col2中的所有唯一值中。 解决这个问题的好方法是什么

举例说明问题

d = {
     'col1': ['alfa','alfa','beta','beta','beta','charlie','delta','delta','echo','foxtrot','foxtrot'], 
     'col2': ['sweden','norway','norway','sweden','denmark','norway','sweden','norway','denmark','denmark','norway']
    }

     df = pd.DataFrame(data=d)

     print(df)


col1    col2
alfa    sweden
alfa    norway
beta    norway
beta    sweden
beta    denmark
charlie norway
delta   sweden
delta   norway
echo    denmark
foxtrot denmark
foxtrot norway
通缉结果: df2


首先创建唯一国家名称的
集合
,按col1将col2值分组到列表中,然后通过比较集合应用布尔掩码:

df = pd.DataFrame(data=d)
unique = set(df["col2"].unique())
grouped = df.groupby("col1")["col2"].apply(list)
x = df.groupby("col1")["col2"].apply(set)==unique

print (grouped[x])

#
col1
beta    [norway, sweden, denmark]

非常感谢您提供的解决方案,它解决了我正在处理的问题。有关集团、拆分的澄清,请采用以下方法:
df = pd.DataFrame(data=d)
unique = set(df["col2"].unique())
grouped = df.groupby("col1")["col2"].apply(list)
x = df.groupby("col1")["col2"].apply(set)==unique

print (grouped[x])

#
col1
beta    [norway, sweden, denmark]