我有这个数据框:
df_in = pd.DataFrame({'id': ['123', '123', '123', '123', '123', '456'],
'ven_group': ['a', 'a', 'a', 'b', 'f', 'f'],
'date': ['1/1/21', '2/1/21', '3/1/21', '1/1/21', '1/1/21', '1/1/21']
})
我有以下标准(这是我需要的列表 ven_group):
ven_group_li = ['a', 'b', 'c']
这是我需要的输出:
基本上它是一个数据透视表,每个唯一的 id 作为一行,每个 ven_group 名称(如果它在 ven_group_li 中),然后找到此 ven_group 的最小和最大日期,如果 ven_group 名称不在列表中,它将用以下内容填充该行南。
我尝试了这个,但我不知道如何修改它以包含我的 ven_group 要求并具有最小、最大日期:
df_out1 = df_in.groupby('id')['ven_group'].apply(lambda x: pd.DataFrame(x.unique()).T).reset_index(level=1, drop=True)