回答編集履歴

1

回答の追記

2019/07/05 01:33

投稿

mistn
mistn

スコア1191

test CHANGED
@@ -57,3 +57,59 @@
57
57
  ```
58
58
 
59
59
  もっと賢い方法はあると思いますがこんな感じですかね。`while True:` と `break` を足しただけです。
60
+
61
+
62
+
63
+ ---
64
+
65
+
66
+
67
+ 賢そうな方法を思いついたので追記しておきます。
68
+
69
+ i(DataFrameの日付)からa(始まりの日付)を求め、aからb(終わりの日付)を求めるやり方です。
70
+
71
+ ```python
72
+
73
+ import pandas as pd
74
+
75
+ import datetime
76
+
77
+ data = {
78
+
79
+ "日":[datetime.datetime(2018,4,20),datetime.datetime(2018,4,22),datetime.datetime(2018,5,26),datetime.datetime(2018,6,6)],
80
+
81
+ "売り上げ":[5,6,7,8]
82
+
83
+ }
84
+
85
+ df = pd.DataFrame(data)
86
+
87
+
88
+
89
+ week=[]
90
+
91
+ a = datetime.datetime(2018,4,14)
92
+
93
+ for i in pd.to_datetime(df['日']):
94
+
95
+ i = i.to_pydatetime()
96
+
97
+ day = (i-a).days
98
+
99
+ a = a + datetime.timedelta(days=day - (day % 7))
100
+
101
+ b = a + datetime.timedelta(days=6)
102
+
103
+
104
+
105
+ start = a.strftime("%Y/%m/%d")
106
+
107
+ end = b.strftime("%Y/%m/%d")
108
+
109
+ week.append(start+"ー"+end)
110
+
111
+
112
+
113
+ print(week)
114
+
115
+ ```