回答編集履歴

4

サンプルを追加

2019/06/04 04:25

投稿

magichan
magichan

スコア15898

test CHANGED
@@ -73,3 +73,67 @@
73
73
  tb['Week_Number'] = (tb['date1'].dt.week - tb['date1'].astype('datetime64[M]').dt.week) + 1
74
74
 
75
75
  ```
76
+
77
+
78
+
79
+ ###【更に追記】
80
+
81
+ 動作確認サンプル
82
+
83
+ ```Python
84
+
85
+ import pandas as pd
86
+
87
+ import io
88
+
89
+ csv = """
90
+
91
+ date1,val
92
+
93
+ 2019/1/1,1
94
+
95
+ 2019/1/15,2
96
+
97
+ 2019/2/1,3
98
+
99
+ 2019/2/15,4
100
+
101
+ """
102
+
103
+ df = pd.read_csv(io.StringIO(csv),parse_dates=['date1'])
104
+
105
+ print(df['date1'].dt.week)
106
+
107
+ #0 1
108
+
109
+ #1 3
110
+
111
+ #2 5
112
+
113
+ #3 7
114
+
115
+ #Name: date1, dtype: int64
116
+
117
+ print(df['date1'].astype('datetime64[M]').dt.week)
118
+
119
+ #0 1
120
+
121
+ #1 1
122
+
123
+ #2 5
124
+
125
+ #3 5
126
+
127
+ #Name: date1, dtype: int64
128
+
129
+ print(df['date1'].dt.week - df['date1'].astype('datetime64[M]').dt.week + 1)
130
+
131
+ #0 1
132
+
133
+ #1 3
134
+
135
+ #2 1
136
+
137
+ #3 3
138
+
139
+ ```

3

回答に追記

2019/06/04 04:25

投稿

magichan
magichan

スコア15898

test CHANGED
@@ -45,3 +45,31 @@
45
45
  ```
46
46
 
47
47
  となります
48
+
49
+
50
+
51
+ ### 【追記】
52
+
53
+ > 年ではなく、月の週番号になります。
54
+
55
+
56
+
57
+ であれば、
58
+
59
+ ```Python
60
+
61
+ tb['date1'].astype('datetime64[M]').dt.week
62
+
63
+ ```
64
+
65
+
66
+
67
+ で ``date1`` の月の初め(1日)の Week番号が得られますので、ここからの差を求めると良いのではないでしょうか
68
+
69
+
70
+
71
+ ```Python
72
+
73
+ tb['Week_Number'] = (tb['date1'].dt.week - tb['date1'].astype('datetime64[M]').dt.week) + 1
74
+
75
+ ```

2

サンプル修正

2019/06/04 03:28

投稿

magichan
magichan

スコア15898

test CHANGED
@@ -40,7 +40,7 @@
40
40
 
41
41
  tb=pd.read_csv('./total_table.csv',sep=',', parse_dates=['date1'])
42
42
 
43
- tb['Week_Number'] = tb['date1'].dt.week
43
+ tb['weeknum'] = tb['date1'].dt.week
44
44
 
45
45
  ```
46
46
 

1

タイポを修正

2019/06/04 01:57

投稿

magichan
magichan

スコア15898

test CHANGED
@@ -12,7 +12,7 @@
12
12
 
13
13
  ```csv
14
14
 
15
- date1, val1
15
+ date1,val1
16
16
 
17
17
  2019/1/1,1
18
18