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

回答編集履歴

3

誤字を修正

2020/09/14 01:58

投稿

Daregada
Daregada

スコア11990

answer CHANGED
@@ -12,7 +12,7 @@
12
12
  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,,,,,,,,,,,,,,,,,,,
13
13
  ```
14
14
 
15
- 該当部分を`"`で囲む必要はなく、2行目の不要な`"`と3行目の`"""`を削除すれば、`read_csv`で読み込めした。元データはエンコーディングがシフトJISなので、読み込む際には`encoding="cp932"`が必要です。
15
+ 該当部分を`"`で囲む必要はなく、2行目の不要な`"`と3行目の`"""`を削除すれば、`read_csv`で読み込めした。元データはエンコーディングがシフトJISなので、読み込む際には`encoding="cp932"`が必要です。
16
16
 
17
17
  ```Python
18
18
  import pandas as pd

2

表現を修正

2020/09/14 01:58

投稿

Daregada
Daregada

スコア11990

answer CHANGED
@@ -1,25 +1,24 @@
1
- 実際に\r\nと\nが混在したcsvファイルを作成し、Jupyter Notebook/Labで読み込せてみましたが、`pandas.read_csv`はどちらも改行コードと認識してデータフレーム生成しています。
1
+ 、`pandas.read_csv`自体改行コードが\nだけでも\r\nでも、それらが混在していても、問題なくデータを読み込めます。
2
2
 
3
+ 今回の問題は、対象のCSVファイルに、`"`で囲まれた部分に\r\nが入ったデータが含まれていることです。2行目の`"ol_0011`の直後ですね。`"`に囲まれているので\r\nがそのままデータの一部として読み込まれて、3行目のデータが2行目の一部として扱われています。以下は、16進ダンプされた内容から元のCSVを復元したものです。
4
+
5
+ ```csv
6
+ ユーザー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,,,,,,,,,,,,,,,,,,,
7
+ 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
8
+ 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
9
+ s04624,2020/9/1 19:03,S_0008,1,,1,,1,,2020/9/1,1,4,2,0,3,1,,0,1,s04624,4624,,,,,,,,,,,,,,,,,,,
10
+ 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,,,,,,,,,,,,,,,,,,,
11
+ 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,,,,,,,,,,,,,,,,,,,
12
+ 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,,,,,,,,,,,,,,,,,,,
13
+ ```
14
+
15
+ 該当部分を`"`で囲む必要はなく、2行目の不要な`"`と3行目の`"""`を削除すれば、`read_csv`で読み込めした。元データはエンコーディングがシフトJISなので、読み込む際には`encoding="cp932"`が必要です。
16
+
3
17
  ```Python
4
18
  import pandas as pd
5
19
 
6
- df = pd.read_csv("blended.csv", header=None, skipinitialspace=True, names=["0", "1"])
20
+ df = pd.read_csv("blended2_mod.csv", encoding="cp932", parse_dates=['回答時刻'], skipinitialspace=True)
7
21
  print(df)
8
22
  ```
9
23
 
10
- ```results
11
- 0 1
12
- 0 ol_0011 NaN
13
- 1 s02264 2020-09-02 15:43:09
14
- 2 ol_0012 NaN
15
- 3 s02265 2020-09-03 16:43:09
16
- 4 ol_0013 NaN
17
- 5 s02266 2020-09-04 17:43:09
18
- ```
19
-
20
- 質問へのコメントでも述べたように、実際に使っているコードとCSVファイル(の一部)を提示してください。
21
-
22
- 追加分:
23
- 対象のCSVファイル、`"`で囲まれた部分に\r\nが入ったデータが含まれてます。2行目の`"ol_0011`の直後でね。`"`囲まれているので\r\nがそのまデータの一部と読み込ます
24
+ 末尾にデータの存在しない項目並んでるのは、2,3行目が(説明した理由で)結合していまった影響でょうか。DataFrameで読み込んだ後で削除すいでしょう
24
-
25
- 16進ダンプされた内容から元のCSVを復元して確認しましたが、該当部分を`"`で囲む必要はなく、不要な`"`と次行の`"""`を削除すれば、`read_csv`で読み込ました。エンコーディングがシフトJISなので、読み込む際には`encoding="cp932"`が必要です。

1

補足を追加

2020/09/14 01:57

投稿

Daregada
Daregada

スコア11990

answer CHANGED
@@ -17,4 +17,9 @@
17
17
  5 s02266 2020-09-04 17:43:09
18
18
  ```
19
19
 
20
- 質問へのコメントでも述べたように、実際に使っているコードとCSVファイル(の一部)を提示してください。
20
+ 質問へのコメントでも述べたように、実際に使っているコードとCSVファイル(の一部)を提示してください。
21
+
22
+ 追加分:
23
+ 対象のCSVファイルに、`"`で囲まれた部分に\r\nが入ったデータが含まれています。2行目の`"ol_0011`の直後ですね。`"`に囲まれているので\r\nがそのままデータの一部として読み込まれています。
24
+
25
+ 16進ダンプされた内容から元のCSVを復元して確認しましたが、該当部分を`"`で囲む必要はなく、不要な`"`と次行の`"""`を削除すれば、`read_csv`で読み込ました。エンコーディングがシフトJISなので、読み込む際には`encoding="cp932"`が必要です。