熊猫:分组两列并返回字符串列的差异

时间:2021-01-13 21:04:09

标签: python-3.x pandas string diff

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

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()

但它不适用于字符串并返回错误

1 个答案:

答案 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}
相关问题