こんにちは。いーかです。この記事では、pandasでCSVを読むときに地味に刺さる BOM(\ufeff)問題を、encoding="utf-8-sig" を中心に、いつ使うべきか/いつ要らないかまで含めて整理します。 結論(1行) Windows由来のCSVで列名ズレ(\ufeff混入)が疑わしいなら、まず pd.read_csv(..., encoding="utf-8-sig")。BOMを“読む側で吸収”できて、最短で安全です。 救急コピペ(まずこれだけで原因が見える) 「列名が変」「KeyError」「BOMっぽい?」と思ったら、まずこれをコピペでOKです。 import pandas…
tsvファイル(タブ区切り)を読み込むread_table()を使う場合 import pandas as pd df = pd.read_table('file_name.tsv') read_csv()を使う場合 import pandas as pd df = pd.read_csv('file_name.tsv', sep='\t') pandas.read_csv ドキュメント pandas.read_table ドキュメント
こちらのサイトでビットコインのデータダウンロードが紹介されているのですが、wget でダウンロードして pandas に読み込んでいます。aifx.tech直接 pandas.read_csv で読み込めそうなものですが、なにかがあるのでしょうと jupyter notebook 上で試してみると、 import pandas as pd df=pd.read_csv("https://api.bitcoincharts.com/v1/csv/bitstampUSD.csv.gz") # URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAI…
こんにちは、やもり(yamori-tech)です。 備忘録として「8桁のstr型数字 00000000 を pd.read_csv で読み込んだら 0.0 になる罠にハマった話」について書こうと思います。 結論としては、dtype=object を指定することで、空欄を維持したまま csv を読み込むことができます。 >|python| pd.read_csv('hoge.csv', dtype=object, encoding='utf-8') ||< 何があったの? 処理上の制限と解決手段