ID(A01,A02...A53,B01,B02...B47,C01...C50)が振られたデータがあり、各IDは300~365日の1日ごとのデータが格納されています。各IDは特徴「P」(1~5)を持つのですが、このデータを下図のようにIDごとに全日に繰り返し代入したいです。
理想
ID | DATE | P |
---|---|---|
A1 | 4/1 | 3 |
A1 | 4/2 | 3 |
A1 | 4/3 | 3 |
A1 | 4/4 | 3 |
A1 | 4/5 | 3 |
A1 | 4/6 | 3 |
: | : | : |
A1 | 12/31 | 3 |
A2 | 4/1 | 5 |
A2 | 4/2 | 5 |
A2 | 4/3 | 5 |
A2 | 4/4 | 5 |
A2 | 4/5 | 5 |
A2 | 4/6 | 5 |
: | : | : |
A2 | 12/31 | 5 |
: | : | : |
C50 | 12/30 | 4 |
C50 | 12/31 | 4 |
試したコード
python
1for i in range(len(quest_df)): 2 for m in range(len(ele_df)): 3 if ele_df['ID'].iloc[m] == quest_df['ID'].iloc[i]: 4 ele_df['P'].iloc[m] = quest_df['P'].iloc[i]
quest_df, ele_dfはデータフレームでquest_dfにある「P」をele_dfに新たに「P」列を作り、格納しようとしました。
その際、if文により同じIDか判別し、同IDの場合のみ日付分繰り返し代入しようとしました。
しかし、結果は全て3になり上手くいきません。
どなたか解決できる方お教えください。
長文になり、失礼いたしました。
quest_df
ID | P |
---|---|
A1 | 3 |
A2 | 5 |
A3 | 2 |
A4 | 3 |
: | : |
A53 | 1 |
B1 | 3 |
B2 | 3 |
: | : |
B47 | 2 |
C1 | 1 |
C2 | 1 |
: | : |
C50 | 4 |
len(quest_df['No']) = 150
ele_df
ID | DATE | 列1 |
---|---|---|
A1 | 4/1 | |
A1 | 4/2 | |
A1 | 4/3 | |
A1 | 4/4 | |
A1 | 4/5 | |
A1 | 4/6 | |
: | : | : |
A1 | 12/31 | |
: | : | : |
A53 | 12/31 | |
B1 | 4/1 | |
: | : | : |
B47 | 12/31 |
len(ele_df['No']) = 133211