我有一个看起来像这样的数据框
id week count
1 1 2
1 2 2
2 3 1
3 5 4
我想要一个df,该df的每个ID都应包含Week(1-5)的所有可能值:
id week count
1 1 2
1 2 2
1 3 null
1 4 null
1 5 null
答案 0 :(得分:0)
我将创建一个新的数据帧,将所有id
值重复5次,并将1-5的范围重复 n 次, n 为id
个值的数量。然后,与原始数据框进行外部合并:
new_df = (pd.merge(pd.DataFrame({'id':np.repeat(df['id'].unique(), 5),
'week':np.tile([1,2,3,4,5], df['id'].nunique())}),
df, how='outer'))
id week count
0 1 1 2.0
1 1 2 2.0
2 1 3 NaN
3 1 4 NaN
4 1 5 NaN
5 2 1 NaN
6 2 2 NaN
7 2 3 1.0
8 2 4 NaN
9 2 5 NaN
10 3 1 NaN
11 3 2 NaN
12 3 3 NaN
13 3 4 NaN
14 3 5 4.0