schaffen DF mit allen möglichen Werten für Woche in Pandas

stimmen
-2

Ich habe einen Datenrahmen, der so aussieht

id    week count
1       1    2
1       2    2
2       3    1
3       5    4

Ich möchte ein df, die jede ID mit allen möglichen Werten der Woche haben (1-5):

id    week  count
1       1     2
1       2     2
1       3     null
1       4     null
1       5     null
Veröffentlicht am 07/11/2018 um 23:44
quelle vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
0

Ich würde nur ein neuer Datenrahmen mit allen schaffen idWerte 5 - mal wiederholt, und der Bereich von 1-5 wiederholt n - mal, n ist die Anzahl der idWerte. Dann tut eine äußeree merge mit Ihrem ursprünglichen Datenrahmen:

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
Beantwortet am 07/11/2018 um 23:54
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more