私の目的は、欠落しているデータを以前のデータで置換し、日付を再サンプリングするために、パンダに行を追加することです。 私のデータには異なる製品IDが含まれており、毎回groupByを実行する必要があります。なぜなら、すべてのproductIdの時間セリデータを保持する必要があるからです。 例:パンダと同時にリサンプリングとグループ化を適用するには?
productId popularity converted_timestamp date
0 1 5 2015-12-01 2015-12-01
1 1 8 2015-12-02 2015-12-02
2 1 6 2015-12-04 2015-12-04
3 1 9 2015-12-07 2015-12-07
4 2 5 2015-12-01 2015-12-01
5 2 10 2015-12-03 2015-12-03
6 2 6 2015-12-04 2015-12-04
7 2 12 2015-12-07 2015-12-07
8 2 11 2015-12-09 2015-12-09
そして、これは私が欲しいものです:: これが私のデータフレームである
date productId popularity converted_timestamp
0 2015-12-01 1 5 2015-12-01
1 2015-12-02 1 8 2015-12-02
2 2015-12-03 1 8 2015-12-02
3 2015-12-04 1 6 2015-12-04
4 2015-12-05 1 6 2015-12-04
5 2015-12-06 1 6 2015-12-04
6 2015-12-07 1 9 2015-12-07
7 2015-12-01 2 5 2015-12-01
8 2015-12-02 2 5 2015-12-01
9 2015-12-03 2 10 2015-12-03
10 2015-12-04 2 6 2015-12-04
11 2015-12-05 2 6 2015-12-04
12 2015-12-06 2 6 2015-12-04
13 2015-12-07 2 12 2015-12-07
14 2015-12-08 2 12 2015-12-07
15 2015-12-09 2 11 2015-12-09
そして、これは私のコードです:
df.set_index('date').groupby('productId', group_keys=False).apply(lambda df: df.resample('D').ffill()).reset_index()
それが動作し、それは完璧です! だから私の新しいデータは、次のようになります。
productId popularity converted_timestamp date
11960909 15620743.0 526888.0 2016-01-11 2016-01-11
11960910 15620743.0 487450.0 2016-02-26 2016-02-26
11960911 15620743.0 487450.0 2016-02-26 2016-02-26
12355593 17175984.0 751990.0 2016-01-28 2016-01-28
12355594 17175984.0 584549.0 2016-01-26 2016-01-26
12355595 17175984.0 587289.0 2016-01-26 2016-01-26
12355596 17175984.0 574454.0 2016-01-26 2016-01-26
12355597 17175984.0 570663.0 2016-01-26 2016-01-26
12355598 17175984.0 566914.0 2016-01-26 2016-01-26
12355599 17175984.0 591241.0 2016-01-26 2016-01-26
12355600 17175984.0 590637.0 2016-01-26 2016-01-26
12355601 17175984.0 556794.0 2016-01-27 2016-01-27
12355602 17175984.0 512403.0 2016-02-10 2016-02-10
12355603 17175984.0 510561.0 2016-02-10 2016-02-10
12355604 17175984.0 513907.0 2016-02-10 2016-02-10
12355605 17175984.0 512403.0 2016-02-10 2016-02-10
12355606 17175984.0 511038.0 2016-02-10 2016-02-10
12355607 17175984.0 510561.0 2016-02-10 2016-02-10
12355608 17175984.0 554359.0 2016-01-27 2016-01-27
17028384 16013607.0 563480.0 2016-02-21 2016-02-21
17028385 16013607.0 563480.0 2016-02-21 2016-02-21
17028386 16013607.0 563480.0 2016-02-21 2016-02-21
17028387 16013607.0 563480.0 2016-02-21 2016-02-21
17028388 16013607.0 563480.0 2016-02-21 2016-02-21
17028389 16013607.0 563480.0 2016-02-21 2016-02-21
17028390 16013607.0 563480.0 2016-02-21 2016-02-21
17028391 16013607.0 563480.0 2016-02-21 2016-02-21
17028392 16013607.0 546230.0 2016-02-14 2016-02-14
17028393 16013607.0 546230.0 2016-02-14 2016-02-14
17028394 16013607.0 546230.0 2016-02-14 2016-02-14
17028395 16013607.0 546230.0 2016-02-14 2016-02-14
17028396 16013607.0 546230.0 2016-02-14 2016-02-14
17028397 16013607.0 546230.0 2016-02-14 2016-02-14
17028398 16013607.0 546230.0 2016-02-14 2016-02-14
17028399 16013607.0 546230.0 2016-02-14 2016-02-14
同じコードは、このエラーメッセージが表示できます: とValueError:方法で非一意のインデックスのインデックスを再作成または
なぜを制限することはできませんか?助けて ? ありがとうございます。
が重複に問題があります - あなたは、重複 '日付を持ってgroup'一部'に'。 – jezrael
あなたは非常に簡単にそれをシミュレートすることができます - 私はjezraelを参照してください '2015-12-01'から' 2015-12-02' – jezrael
に、試料中の最初の日付を変更します!あなたが正しい !ありがとうございました !重複でこれを行う方法はありませんか?それ以外の場合は、重複値の中央値(例)を求め、コードを適用しようとします。ありがとうございました ! – DataAddicted