我有一个如下所示的数据框:
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'])
我想对这两列进行分组,并在单独的列中返回第一列中每个值缺失的相应值。例如,第一列中的“第一个值”没有第二列中的 B、C 值,依此类推。
期望输出:
First unmatched value
First value D,C
Second value C,D
Third value A
我试过了:
df.groupby('First')['Second'].diff()
但它不适用于字符串并返回错误
答案 0 :(得分:0)
使用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}