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

回答編集履歴

2

修正

2020/11/02 09:40

投稿

tiitoi
tiitoi

スコア21960

answer CHANGED
@@ -7,4 +7,5 @@
7
7
  df = pd.read_csv("sample.csv", header=None, parse_dates=[0])
8
8
  df[2] = np.where(df[0] <= "2020-06-20T14:17:34", 40, 20)
9
9
  df.to_csv("output.csv")
10
+ print(df)
10
11
  ```

1

修正

2020/11/02 09:40

投稿

tiitoi
tiitoi

スコア21960

answer CHANGED
@@ -1,46 +1,10 @@
1
- 1列目が日付だと仮定すると、read_csv() で読み込んだあとに `df[(start < df[0]) & (df[0] <= end)]` で指定範囲の日付のだけ抽出すればよいです。
1
+ 1列目が日付だと仮定すると、read_csv() で読み込んだあとに `df[0] <= 日付を表す文字列` が成り立つ行は40、そうないは20を numpy.where() で代入すればよいです。
2
2
 
3
3
  ```python
4
+ import numpy as np
5
+ import pandas as pd
6
+
4
7
  df = pd.read_csv("sample.csv", header=None, parse_dates=[0])
5
-
6
- start = "2020/10/10"
8
+ df[2] = np.where(df[0] <= "2020-06-20T14:17:34", 40, 20)
7
- end = "2020/10/20"
9
+ df.to_csv("output.csv")
8
-
9
- df = df[(start < df[0]) & (df[0] <= end)]
10
- print(df)
11
- ```
12
-
13
- csv のサンプル
14
-
15
- ```
16
- 2020-10-01,0
17
- 2020-10-02,1
18
- 2020-10-03,2
19
- 2020-10-04,3
20
- 2020-10-05,4
21
- 2020-10-06,5
22
- 2020-10-07,6
23
- 2020-10-08,7
24
- 2020-10-09,8
25
- 2020-10-10,9
26
- 2020-10-11,10
27
- 2020-10-12,11
28
- 2020-10-13,12
29
- 2020-10-14,13
30
- 2020-10-15,14
31
- 2020-10-16,15
32
- 2020-10-17,16
33
- 2020-10-18,17
34
- 2020-10-19,18
35
- 2020-10-20,19
36
- 2020-10-21,20
37
- 2020-10-22,21
38
- 2020-10-23,22
39
- 2020-10-24,23
40
- 2020-10-25,24
41
- 2020-10-26,25
42
- 2020-10-27,26
43
- 2020-10-28,27
44
- 2020-10-29,28
45
- 2020-10-30,29
46
10
  ```