1. ホーム
  2. python

[解決済み] Python Pandasはデータフレーム内の行を複製する

2023-03-10 02:51:07

質問

データフレームが以下のような場合。

Store,Dept,Date,Weekly_Sales,IsHoliday
1,1,2010-02-05,24924.5,FALSE
1,1,2010-02-12,46039.49,TRUE
1,1,2010-02-19,41595.55,FALSE
1,1,2010-02-26,19403.54,FALSE
1,1,2010-03-05,21827.9,FALSE
1,1,2010-03-12,21043.39,FALSE
1,1,2010-03-19,22136.64,FALSE
1,1,2010-03-26,26229.21,FALSE
1,1,2010-04-02,57258.43,FALSE

で行を重複させたいのですが IsHoliday が TRUE に等しい場合は、できます。

is_hol = df['IsHoliday'] == True
df_try = df[is_hol]
df=df.append(df_try*10)

しかし、休日の行を5回重複させる必要があり、上記の方法だと5回追記しなければならないので、もっと良い方法はないでしょうか?

どのように解決するのですか?

この場合 df_try をリストの中に入れて、思い通りのことができる。

>>> df.append([df_try]*5,ignore_index=True)

    Store  Dept       Date  Weekly_Sales IsHoliday
0       1     1 2010-02-05      24924.50     False
1       1     1 2010-02-12      46039.49      True
2       1     1 2010-02-19      41595.55     False
3       1     1 2010-02-26      19403.54     False
4       1     1 2010-03-05      21827.90     False
5       1     1 2010-03-12      21043.39     False
6       1     1 2010-03-19      22136.64     False
7       1     1 2010-03-26      26229.21     False
8       1     1 2010-04-02      57258.43     False
9       1     1 2010-02-12      46039.49      True
10      1     1 2010-02-12      46039.49      True
11      1     1 2010-02-12      46039.49      True
12      1     1 2010-02-12      46039.49      True
13      1     1 2010-02-12      46039.49      True