回答編集履歴

3

誤字を修正

2020/09/14 01:58

投稿

Daregada
Daregada

スコア11990

test CHANGED
@@ -26,7 +26,7 @@
26
26
 
27
27
 
28
28
 
29
- 該当部分を`"`で囲む必要はなく、2行目の不要な`"`と3行目の`"""`を削除すれば、`read_csv`で読み込めした。元データはエンコーディングがシフトJISなので、読み込む際には`encoding="cp932"`が必要です。
29
+ 該当部分を`"`で囲む必要はなく、2行目の不要な`"`と3行目の`"""`を削除すれば、`read_csv`で読み込めした。元データはエンコーディングがシフトJISなので、読み込む際には`encoding="cp932"`が必要です。
30
30
 
31
31
 
32
32
 

2

表現を修正

2020/09/14 01:58

投稿

Daregada
Daregada

スコア11990

test CHANGED
@@ -1,4 +1,32 @@
1
+ まず、`pandas.read_csv`自体は、改行コードが\nだけでも\r\nでも、それらが混在していても、問題なくデータを読み込めます。
2
+
3
+
4
+
5
+ 今回の問題は、対象のCSVファイルに、`"`で囲まれた部分に\r\nが入ったデータが含まれていることです。2行目の`"ol_0011`の直後ですね。`"`に囲まれているので\r\nがそのままデータの一部として読み込まれて、3行目のデータが2行目の一部として扱われています。以下は、16進ダンプされた内容から元のCSVを復元したものです。
6
+
7
+
8
+
9
+ ```csv
10
+
11
+ ユーザーID,回答時刻,FormNo,sisetuCode,sisetuName,drCode,drName,kamokuCode,kamokuName,tabdate,tab_no,slider_1,slider_2,slider_3,slider_4,slider_5,cnt_new,cnt_total,comp,user_id,user_id_2,,,,,,,,,,,,,,,,,,,
12
+
13
+ isol_0011,2020/8/20 18:48,S_0008,1,,1,,1,,2020/8/20,1,2,4,2,2,1,1,1,0,isol_0011,"ol_0011
14
+
1
- 実際に\r\nと\nが混在したcsvファイルを作成し、Jupyter Notebook/Labで読み込ませてみましたが、`pandas.read_csv`はどちらも改行コードと認識してデータフレームを生成しています。
15
+ s02264,2020-09-02 15:43:09""",S_0008,1,,1,,1,,2020/9/2,1,5,5,5,3,3,100,100,0,s02264,2264
16
+
17
+ s04624,2020/9/1 19:03,S_0008,1,,1,,1,,2020/9/1,1,4,2,0,3,1,,0,1,s04624,4624,,,,,,,,,,,,,,,,,,,
18
+
19
+ s10647,2020/9/2 10:29,S_0008,1,,1,,1,,2020/9/2,1,5,3,2,3,3,0,0,1,s10647,10647,,,,,,,,,,,,,,,,,,,
20
+
21
+ s12382,2020/8/25 15:22,S_0008,1,,1,,1,,2020/8/25,1,2,4,2,3,3,23,23,1,s12382,12382,,,,,,,,,,,,,,,,,,,
22
+
23
+ s12382,2020/8/25 18:02,S_0008,1,,1,,1,,2020/8/26,2,4,4,3,2,2,6,29,1,s12382,12382,,,,,,,,,,,,,,,,,,,
24
+
25
+ ```
26
+
27
+
28
+
29
+ 該当部分を`"`で囲む必要はなく、2行目の不要な`"`と3行目の`"""`を削除すれば、`read_csv`で読み込めした。元データはエンコーディングがシフトJISなので、読み込む際には`encoding="cp932"`が必要です。
2
30
 
3
31
 
4
32
 
@@ -8,7 +36,7 @@
8
36
 
9
37
 
10
38
 
11
- df = pd.read_csv("blended.csv", header=None, skipinitialspace=True, names=["0", "1"])
39
+ df = pd.read_csv("blended2_mod.csv", encoding="cp932", parse_dates=['回答時刻'], skipinitialspace=True)
12
40
 
13
41
  print(df)
14
42
 
@@ -16,34 +44,4 @@
16
44
 
17
45
 
18
46
 
19
- ```results
20
-
21
- 0 1
22
-
23
- 0 ol_0011 NaN
24
-
25
- 1 s02264 2020-09-02 15:43:09
26
-
27
- 2 ol_0012 NaN
28
-
29
- 3 s02265 2020-09-03 16:43:09
30
-
31
- 4 ol_0013 NaN
32
-
33
- 5 s02266 2020-09-04 17:43:09
34
-
35
- ```
36
-
37
-
38
-
39
- 質問へのコメントでも述べたように、実際に使っているコードとCSVファイル(の一部)を提示してください。
40
-
41
-
42
-
43
- 追加分:
44
-
45
- 対象のCSVファイル、`"`で囲まれた部分に\r\nが入ったデータが含まれてます。2行目の`"ol_0011`の直後すね。`"`囲まれているの\r\nがそのままデータの一部として読み込ます
47
+ 末尾にデータの存在しない項目並んでるのは、2,3行目が(すでに説明した理由で)結合していまった影響しょうか。DataFrameで読み込んだ後で削除すいでしょう
46
-
47
-
48
-
49
- 16進ダンプされた内容から元のCSVを復元して確認しましたが、該当部分を`"`で囲む必要はなく、不要な`"`と次行の`"""`を削除すれば、`read_csv`で読み込ました。エンコーディングがシフトJISなので、読み込む際には`encoding="cp932"`が必要です。

1

補足を追加

2020/09/14 01:57

投稿

Daregada
Daregada

スコア11990

test CHANGED
@@ -37,3 +37,13 @@
37
37
 
38
38
 
39
39
  質問へのコメントでも述べたように、実際に使っているコードとCSVファイル(の一部)を提示してください。
40
+
41
+
42
+
43
+ 追加分:
44
+
45
+ 対象のCSVファイルに、`"`で囲まれた部分に\r\nが入ったデータが含まれています。2行目の`"ol_0011`の直後ですね。`"`に囲まれているので\r\nがそのままデータの一部として読み込まれています。
46
+
47
+
48
+
49
+ 16進ダンプされた内容から元のCSVを復元して確認しましたが、該当部分を`"`で囲む必要はなく、不要な`"`と次行の`"""`を削除すれば、`read_csv`で読み込ました。エンコーディングがシフトJISなので、読み込む際には`encoding="cp932"`が必要です。