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

質問編集履歴

4

丸投げだったので現段階で試していることを追加

2020/12/13 08:55

投稿

penverray
penverray

スコア0

title CHANGED
File without changes
body CHANGED
@@ -40,6 +40,53 @@
40
40
  7,2020-12-09 15:15,2020-12-15 17:00,打刻ミス
41
41
  8,2020-12-09 15:18,2020-12-09 15:18,
42
42
  ```
43
+
44
+ ###現段階で試していること・調査中
45
+ python側(修正データは読み込んでいません)
46
+ nan部分をnanで上書きしたくない(修正データがnanとき、修正元の退勤時間のデータをそのまま使いたい)
47
+ Noが1の部分を指定して上書きするコード(間違っている可能性あり)
48
+
49
+ ```python
50
+ import csv
51
+
52
+
53
+ def read_csv(filename):
54
+ f = open(filename, "r")
55
+ csv_data = csv.reader(f)
56
+ list1 = [e for e in csv_data]
57
+ f.close()
58
+ return list1
59
+
60
+
61
+ def update_list2d(list1, data):
62
+ for i in range(len(list1)):
63
+ if list1[i][0] == data[0]: list1[i] = data
64
+ return list1
65
+
66
+
67
+ def write_csv(filename, list1):
68
+ with open(filename, 'w', newline='') as f:
69
+ writer = csv.writer(f)
70
+ writer.writerows(list1)
71
+
72
+ f.close()
73
+
74
+
75
+ def main():
76
+ #csvファイルのパス
77
+ csv_path = "data1.csv"
78
+ #csvファイルのロード
79
+ csv_data = read_csv(csv_path)
80
+
81
+ data = ["1", "2020-12-09 14:42", nan, ""]
82
+ csv_data2 = update_list2d(csv_data, data)
83
+ write_csv(csv_path, csv_data2)
84
+
85
+
86
+ if __name__ == '__main__':
87
+ main()
88
+ ```
89
+
43
90
  ### 条件
44
91
  修正データの空白の部分は修正元のデータをそのまま使う
45
92
  Noを参照して上の行から下の行までを順次適応させたい

3

タイトル変更

2020/12/13 08:55

投稿

penverray
penverray

スコア0

title CHANGED
@@ -1,1 +1,1 @@
1
- PythonでCSVの書き換えをしたい
1
+ PythonでCSVを使って新規ファイルとて出力をしたい
body CHANGED
@@ -53,7 +53,8 @@
53
53
  修正元のNoは修正データの参照元と仮定しています
54
54
  修正データのNoは修正元の参照先と仮定しています
55
55
  また、過去に似たような質問があった場合は、リンクを載せていただけると幸いです。
56
+
56
57
  ###追記
57
- 書き換えに手段は問いません。
58
+ 手段は問いません。
58
59
  おかしい部分があった場合は指摘をいただけると幸いです。
59
60
  素人なのでどなたかご教授くだされば幸いです。

2

補足追加

2020/12/13 08:28

投稿

penverray
penverray

スコア0

title CHANGED
File without changes
body CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  python3で、修正元のデータに修正データを適応させ修正後のデータの形で出力をしたいです。
4
4
  pythonとCSVファイルのみで操作をしたいです。
5
+
5
6
  ###コード
6
7
  修正元のデータ
7
8
  ```csv
@@ -44,7 +45,11 @@
44
45
  Noを参照して上の行から下の行までを順次適応させたい
45
46
 
46
47
  ### 補足情報
47
- python3.6でプログラムを書いてます
48
+ python3.6
49
+ ・修正元:data1.csv
50
+ ・修正データ:fix.csv
51
+ ・修正後:data1_after.csv
52
+
48
53
  修正元のNoは修正データの参照元と仮定しています
49
54
  修正データのNoは修正元の参照先と仮定しています
50
55
  また、過去に似たような質問があった場合は、リンクを載せていただけると幸いです。

1

書き換えから表記を変更

2020/12/13 08:13

投稿

penverray
penverray

スコア0

title CHANGED
File without changes
body CHANGED
@@ -1,7 +1,7 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
- python3で、修正元のデータに修正データを適応させ修正後のデータの形に書き換えをしたいです。
3
+ python3で、修正元のデータに修正データを適応させ修正後のデータの形で出力をしたいです。
4
- pythonとCSVファイルのみで書き換えをしたいです。
4
+ pythonとCSVファイルのみで操作をしたいです。
5
5
  ###コード
6
6
  修正元のデータ
7
7
  ```csv