pandas: groupby 两列和 return diff for string column

pandas: groupby two columns and return diff for string column

我有一个如下所示的数据框:

import pandas as pd

data = {'First':  ['First value','Third value','Second value','First value','Third value','Second value','Third value','Second value','First value','Third value'],

'Second': ['A','B','A','A','C','B','C','B','B','D']}

 df = pd.DataFrame (data, columns = ['First','Second'])

我想将这两列分组,并且 return 将第一列中每个值缺失的相应值放在单独的列中。因此,例如,第一列中的 'First value' 没有第二列中的 B、C 值,依此类推。

期望的输出:

First         unmatched value
First value   D,C
Second value  C,D
Third value   A

我试过:

df.groupby('First')['Second'].diff()

但它不适用于字符串并且return是一个错误

使用set:

all_values = set(df["Second"])
#{'C', 'D', 'B', 'A'}

f = lambda x: all_values - set(x)

df.groupby("First")["Second"].apply(f)
#First
#First value     {C, D}
#Second value    {C, D}
#Third value        {A}