タイトルの通り、長さの異なるSeriesをconcatで結合した場合
python
1df1 = pd.DataFrame( 2 data={'列1':[10,20,30,40,50,60,70,80,90], 3 '列2':[10,20,30,40,50,60,70,80,90], 4 '列3':[10,20,30,40,50,60,70,80,90],} 5) 6 7list1 = df1['列3'].to_list() 8 9x = 3 10mean_list = [] 11for i in range(len(list1)-x): 12 list1_mean = statistics.mean(list1[x+i-x:x+i]) 13 mean_list.append(list1_mean) 14 15seri_1 = pd.Series(mean_list, name='平均') 16 17df2 = pd.concat([df1, seri_1], axis=1)
|Index|列1|列2|列3|平均|
|:--|:--:|--:|
|0|10|10|10|20.0|
|1|20|20|20|30.0|
|2|30|30|30|40.0|
|3|40|40|40|50.0|
|4|50|50|50|60.0|
|5|60|60|60|70.0|
|6|70|70|70|NaN|
|7|80|80|80|NaN|
|8|90|90|90|NaN|
このように欠損の部分が末尾になってしまいます。
ーーーーーーーーーーーーーーー
理想はこのように欠損部分を先頭にしたいのですが、どうすれば良いのでしょうか?
|Index|列1|列2|列3|平均|
|:--|:--:|--:|
|0|10|10|10|NaN|
|1|20|20|20|NaN|
|2|30|30|30|NaN|
|3|40|40|40|20.0|
|4|50|50|50|30.0|
|5|60|60|60|40.0|
|6|70|70|70|50.0|
|7|80|80|80|60.0|
|8|90|90|90|70.0|
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/11/25 06:27