回答編集履歴

1

微修正

2022/04/25 10:17

投稿

bsdfan
bsdfan

スコア4576

test CHANGED
@@ -4,7 +4,7 @@
4
4
  これにより新しいテーブルのdate, s_1, s_2, s_3 が作れます。
5
5
  (並び順がs1を優先しつつ、左をdateにするために、少しややこしいことをしています)
6
6
 
7
- あとは、それを使って元のデータを reindex() すれば、欲しい形になります。
7
+ あとは、それに、元のデータをleft joinすれば、欲しい形になります。
8
8
 
9
9
 
10
10
  ```python
@@ -29,5 +29,5 @@
29
29
  s_uniq = df[['s_1', 's_2', 's_3']].drop_duplicates()
30
30
  new_index = pd.merge(s_uniq, dates, how='cross')[['date'] + s_uniq.columns.to_list()]
31
31
 
32
- df2 = df.set_index(new_index.columns.to_list()).reindex(new_index).reset_index()
32
+ df2 = pd.merge(new_index, df, how='left')
33
33
  ```