質問編集履歴

4

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

2020/12/13 08:55

投稿

penverray
penverray

スコア0

test CHANGED
File without changes
test CHANGED
@@ -82,6 +82,100 @@
82
82
 
83
83
  ```
84
84
 
85
+
86
+
87
+ ###現段階で試していること・調査中
88
+
89
+ python側(修正データは読み込んでいません)
90
+
91
+ nan部分をnanで上書きしたくない(修正データがnanとき、修正元の退勤時間のデータをそのまま使いたい)
92
+
93
+ Noが1の部分を指定して上書きするコード(間違っている可能性あり)
94
+
95
+
96
+
97
+ ```python
98
+
99
+ import csv
100
+
101
+
102
+
103
+
104
+
105
+ def read_csv(filename):
106
+
107
+ f = open(filename, "r")
108
+
109
+ csv_data = csv.reader(f)
110
+
111
+ list1 = [e for e in csv_data]
112
+
113
+ f.close()
114
+
115
+ return list1
116
+
117
+
118
+
119
+
120
+
121
+ def update_list2d(list1, data):
122
+
123
+ for i in range(len(list1)):
124
+
125
+ if list1[i][0] == data[0]: list1[i] = data
126
+
127
+ return list1
128
+
129
+
130
+
131
+
132
+
133
+ def write_csv(filename, list1):
134
+
135
+ with open(filename, 'w', newline='') as f:
136
+
137
+ writer = csv.writer(f)
138
+
139
+ writer.writerows(list1)
140
+
141
+
142
+
143
+ f.close()
144
+
145
+
146
+
147
+
148
+
149
+ def main():
150
+
151
+ #csvファイルのパス
152
+
153
+ csv_path = "data1.csv"
154
+
155
+ #csvファイルのロード
156
+
157
+ csv_data = read_csv(csv_path)
158
+
159
+
160
+
161
+ data = ["1", "2020-12-09 14:42", nan, ""]
162
+
163
+ csv_data2 = update_list2d(csv_data, data)
164
+
165
+ write_csv(csv_path, csv_data2)
166
+
167
+
168
+
169
+
170
+
171
+ if __name__ == '__main__':
172
+
173
+ main()
174
+
175
+ ```
176
+
177
+
178
+
85
179
  ### 条件
86
180
 
87
181
  修正データの空白の部分は修正元のデータをそのまま使う

3

タイトル変更

2020/12/13 08:55

投稿

penverray
penverray

スコア0

test CHANGED
@@ -1 +1 @@
1
- PythonでCSVの書き換えをしたい
1
+ PythonでCSVを使って新規ファイルとて出力をしたい
test CHANGED
@@ -108,9 +108,11 @@
108
108
 
109
109
  また、過去に似たような質問があった場合は、リンクを載せていただけると幸いです。
110
110
 
111
+
112
+
111
113
  ###追記
112
114
 
113
- 書き換えに手段は問いません。
115
+ 手段は問いません。
114
116
 
115
117
  おかしい部分があった場合は指摘をいただけると幸いです。
116
118
 

2

補足追加

2020/12/13 08:28

投稿

penverray
penverray

スコア0

test CHANGED
File without changes
test CHANGED
@@ -5,6 +5,8 @@
5
5
  python3で、修正元のデータに修正データを適応させ修正後のデータの形で出力をしたいです。
6
6
 
7
7
  pythonとCSVファイルのみで操作をしたいです。
8
+
9
+
8
10
 
9
11
  ###コード
10
12
 
@@ -90,7 +92,15 @@
90
92
 
91
93
  ### 補足情報
92
94
 
93
- python3.6でプログラムを書いてます
95
+ python3.6
96
+
97
+ ・修正元:data1.csv
98
+
99
+ ・修正データ:fix.csv
100
+
101
+ ・修正後:data1_after.csv
102
+
103
+
94
104
 
95
105
  修正元のNoは修正データの参照元と仮定しています
96
106
 

1

書き換えから表記を変更

2020/12/13 08:13

投稿

penverray
penverray

スコア0

test CHANGED
File without changes
test CHANGED
@@ -2,9 +2,9 @@
2
2
 
3
3
 
4
4
 
5
- python3で、修正元のデータに修正データを適応させ修正後のデータの形に書き換えをしたいです。
5
+ python3で、修正元のデータに修正データを適応させ修正後のデータの形で出力をしたいです。
6
6
 
7
- pythonとCSVファイルのみで書き換えをしたいです。
7
+ pythonとCSVファイルのみで操作をしたいです。
8
8
 
9
9
  ###コード
10
10