csvデータ 文字列
15 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
美紗子 馬渕
el 22 de Feb. de 2022
Comentada: 美紗子 馬渕
el 25 de Feb. de 2022
文字化けのあるcsvデータをmatlabのreadtableを使用して読み込みました。
1つめのファイルでは文字化けしたセルはNaN と表示されるため、Rmmissingを使用して文字化けを削除することができました。
しかし、2つ目のファイルではすべてが文字列として読み込みされてしまい、数値と文字を分けることできませんでした。(添付資料参照ください)
文字化けをしていない、数値の入った行のみを取り出す方法はないでしょうか。
よろしくお願いいたします。
0 comentarios
Respuesta aceptada
Atsushi Ueno
el 23 de Feb. de 2022
>文字化けをしていない、数値の入った行のみを取り出す方法はないでしょうか
そのような解決方法の前に、csvファイルを正しいエンコードで読み込む事を試してみてください
rmmissing関数でNaNを削除する事は出来ても、文字化け部分を削除する事は出来ません(詳細は下記)
readtable関数であれば、下記の2通りを試してみてください。参考までに上記二種類のエンコードで作成したサンプルcsvファイル(漢字を含みます)を添付します。
readtable('yourFile.csv','Encoding','UTF-8');
readtable('yourFile.csv','Encoding','Shift_JIS');
(リンク先の少し上にある「Encoding — 文字エンコード スキーム」)
% エンコードを指定しない場合、関数 readtable は自動文字セット検出を使用して、ファイルの読み取り時にエンコードを判断します。
readtable関数には文字エンコードを自動で判断する事を期待しますが、何らかの理由で判断出来ないようです。
明示的にエンコードを指定して読み込めば、正しいエンコードを選択した時に可読文字で表示されるはずです。
Windows環境で普通にCSVファイルを作るとUTF-8 かShift_JISのどちらかになるはずです。(他のエンコードも有り得ます)
rmmissing関数の削除対象である「欠損エントリ」は、データ型によりNaN, NaT, <missing>, <undefined>, ' ', {''}と表現され、これは「何かが欠損している」事を示す値です。例えばCSVデータの表において一部項目が正常に認識されなかった場合、CSV読込関数はそこが欠損していた事を示すために欠損エントリで埋めておきます。
文字化けしたデータは不正な表記に見えますが、適切なエンコードで表示すれば正しいデータなのです。
Más respuestas (1)
Ver también
Categorías
Más información sobre テキスト ファイル en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!