回答編集履歴

1

出力の間違いを修正

2021/03/24 14:08

投稿

ppaul
ppaul

スコア24670

test CHANGED
@@ -3,6 +3,10 @@
3
3
  日時が文字列でもDatetime型でも同じ方法で可能です。
4
4
 
5
5
  Start_datetimeがすでに昇順に並んでいるなら、ソートの行は不要です。
6
+
7
+
8
+
9
+ 出力が違っていたので回答を修正しました。
6
10
 
7
11
 
8
12
 
@@ -14,9 +18,15 @@
14
18
 
15
19
  df = df.sort_values("Start_datetime")
16
20
 
17
- df["End_datetime"] = df["Start_datetime"].shift(-1)
21
+ df2 = df.copy()
18
22
 
23
+ df2["End_datetime"] = df["Start_datetime"].shift(-1)
24
+
25
+ df2["Start_datetime"] = df["End_datetime"]
26
+
19
- df2 = df.iloc[:-1,:]
27
+ df3 = df2.iloc[:-1,:]
28
+
29
+ print(df3)
20
30
 
21
31
  ```
22
32
 
@@ -36,16 +46,20 @@
36
46
 
37
47
  >>> df = df.sort_values("Start_datetime")
38
48
 
39
- >>> df["End_datetime"] = df["Start_datetime"].shift(-1)
49
+ >>> df2 = df.copy()
40
50
 
41
- >>> df2 = df.iloc[:-1,:]
51
+ >>> df2["End_datetime"] = df["Start_datetime"].shift(-1)
42
52
 
53
+ >>> df2["Start_datetime"] = df["End_datetime"]
54
+
55
+ >>> df3 = df2.iloc[:-1,:]
56
+
43
- >>> print(df2)
57
+ >>> print(df3)
44
58
 
45
59
  Start_datetime End_datetime Item
46
60
 
47
- 0 2021/3/1 12:00:00 2021/3/1 16:00:00 Apple
61
+ 0 2021/3/1 14:00:00 2021/3/1 16:00:00 Apple
48
62
 
49
- 1 2021/3/1 16:00:00 2021/3/1 19:00:00 Peach
63
+ 1 2021/3/1 17:00:00 2021/3/1 19:00:00 Peach
50
64
 
51
65
  ```