【发布时间】:2021-09-07 08:54:25
【问题描述】:
我有这个数据框:
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_li 中,每个 ven_group 名称,然后找到这个 ven_group 的最小和最大日期,如果 ven_group 名称不在列表中,它将填充带有 NaN 的行。
我试过这个,但我不知道如何修改它以包含我的 ven_group 要求并具有最小、最大日期:
df_out1 = df_in.groupby('id')['ven_group'].apply(lambda x: pd.DataFrame(x.unique()).T).reset_index(level=1, drop=True)
【问题讨论】:
标签: python pandas group-by pivot-table apply