teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

出力の間違いを修正

2021/03/24 14:08

投稿

ppaul
ppaul

スコア24672

answer CHANGED
@@ -2,12 +2,17 @@
2
2
  日時が文字列でもDatetime型でも同じ方法で可能です。
3
3
  Start_datetimeがすでに昇順に並んでいるなら、ソートの行は不要です。
4
4
 
5
+ 出力が違っていたので回答を修正しました。
6
+
5
7
  ```python
6
8
  import pandas as pd
7
9
  df = pd.DataFrame(result, columns = ["Start_datetime", "End_datetime", "Item"])
8
10
  df = df.sort_values("Start_datetime")
11
+ df2 = df.copy()
9
- df["End_datetime"] = df["Start_datetime"].shift(-1)
12
+ df2["End_datetime"] = df["Start_datetime"].shift(-1)
13
+ df2["Start_datetime"] = df["End_datetime"]
10
- df2 = df.iloc[:-1,:]
14
+ df3 = df2.iloc[:-1,:]
15
+ print(df3)
11
16
  ```
12
17
 
13
18
  実行例
@@ -17,10 +22,12 @@
17
22
  >>> import pandas as pd
18
23
  >>> df = pd.DataFrame(result, columns = ["Start_datetime", "End_datetime", "Item"])
19
24
  >>> df = df.sort_values("Start_datetime")
25
+ >>> df2 = df.copy()
20
- >>> df["End_datetime"] = df["Start_datetime"].shift(-1)
26
+ >>> df2["End_datetime"] = df["Start_datetime"].shift(-1)
27
+ >>> df2["Start_datetime"] = df["End_datetime"]
21
- >>> df2 = df.iloc[:-1,:]
28
+ >>> df3 = df2.iloc[:-1,:]
22
- >>> print(df2)
29
+ >>> print(df3)
23
30
  Start_datetime End_datetime Item
24
- 0 2021/3/1 12:00:00 2021/3/1 16:00:00 Apple
31
+ 0 2021/3/1 14:00:00 2021/3/1 16:00:00 Apple
25
- 1 2021/3/1 16:00:00 2021/3/1 19:00:00 Peach
32
+ 1 2021/3/1 17:00:00 2021/3/1 19:00:00 Peach
26
33
  ```