回答編集履歴

1

2022/11/19 08:37

投稿

melian
melian

スコア20543

test CHANGED
@@ -35,3 +35,29 @@
35
35
  [755 rows x 2 columns]
36
36
  ```
37
37
 
38
+ > 可能であれば、抽出されたそれぞれの区間のデータをData1,Data2のように名前付けして列に並べて表示したい。
39
+
40
+ 区間の長さ(行数)が異なるので、不足分は `NaN` で埋められる事になります。
41
+
42
+ ```python
43
+ dfx = df2.apply(lambda x: df1[df1['No'].between(*x)].reset_index(drop=True), axis=1).to_list()
44
+ cols = [f'{c}{i}' for i, dfi in enumerate(dfx, start=1) for c in dfi.columns]
45
+ dfx = pd.concat(dfx, axis=1).set_axis(cols, axis=1)
46
+ print(dfx)
47
+
48
+ #
49
+ No1 Data1 No2 Data2 No3 Data3 No4 Data4
50
+ 0 10.0 28.0 40.0 52.0 500.0 8.0 1000 22
51
+ 1 11.0 90.0 41.0 23.0 501.0 98.0 1001 104
52
+ 2 12.0 90.0 42.0 66.0 502.0 25.0 1002 91
53
+ 3 13.0 32.0 43.0 63.0 503.0 86.0 1003 9
54
+ 4 14.0 78.0 44.0 104.0 504.0 39.0 1004 1
55
+ .. ... ... ... ... ... ... ... ...
56
+ 446 NaN NaN NaN NaN NaN NaN 1446 39
57
+ 447 NaN NaN NaN NaN NaN NaN 1447 113
58
+ 448 NaN NaN NaN NaN NaN NaN 1448 78
59
+ 449 NaN NaN NaN NaN NaN NaN 1449 96
60
+ 450 NaN NaN NaN NaN NaN NaN 1450 57
61
+
62
+ [451 rows x 8 columns]
63
+ ```