用大熊猫一周的所有可能值创建DF

时间:2018-11-07 23:44:39

标签: python pandas

我有一个看起来像这样的数据框

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

1 个答案:

答案 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