質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

516閲覧

csvファイルをpythonで読みこみたい

01294941

総合スコア8

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/12/02 12:24

編集2021/12/02 14:23

csvファイルをpythonで読み込んで行や列ごとに抽出して作業をしてきたいと考えています。

しかし、csvファイルを読みこもうとしてもエラーが出てしまいます。

エラーメッセージについて検索してみて色々試してみても今のところ未解決です。

https://drive.google.com/drive/folders/1m512KtrYgWVCtJ6kqoa_gT27t2NeroBU?usp=sharing

こちらにそのcsvファイルとそれをテキスト出力したものが置いてありますので見ていただけたら嬉しいです。


実行したコード
import numpy as np
import matplotlib.pyplot as plt
outfile='file.csv'

x=np.loadtxt(outfile,dtype = float,delimiter='\t')
x=np.loadtxt(outfile,dtype = None,delimiter=',')など

エラーメッセージ


ValueError Traceback (most recent call last)
<ipython-input-29-3ae76efe3c7e> in <module>
----> 1 x=np.loadtxt(outfile,dtype = float,delimiter='\t')
~/anaconda3/lib/python3.8/site-packages/numpy/lib/npyio.py in loadtxt(fname, dtype, comments, delimiter, converters, skiprows, usecols, unpack, ndmin, encoding, max_rows)
1137 # converting the data
1138 X = None
-> 1139 for x in read_data(_loadtxt_chunksize):
1140 if X is None:
1141 X = np.array(x, dtype)
~/anaconda3/lib/python3.8/site-packages/numpy/lib/npyio.py in read_data(chunk_size)
1065
1066 # Convert each value according to its column and store
-> 1067 items = [conv(val) for (conv, val) in zip(converters, vals)]
1068
1069 # Then pack it according to the dtype's nesting
~/anaconda3/lib/python3.8/site-packages/numpy/lib/npyio.py in <listcomp>(.0)
1065
1066 # Convert each value according to its column and store
-> 1067 items = [conv(val) for (conv, val) in zip(converters, vals)]
1068
1069 # Then pack it according to the dtype's nesting
~/anaconda3/lib/python3.8/site-packages/numpy/lib/npyio.py in floatconv(x)
761 if '0x' in x:
762 return float.fromhex(x)
--> 763 return float(x)
764
765 typ = dtype.type
ValueError: could not convert string to float: '10,"30

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

melian

2021/12/02 12:33

前回の質問で対処方法は解ったのではなかったのですか?
y_waiwai

2021/12/02 12:34

エラーが出たなら、エラーメッセージを提示しましょう エラーメッセージは、いらぬ翻訳省略しないで、出たそのママをコピペで提示してください
can110

2021/12/02 12:39

とりあえず提示されているCSVファイルの先頭の1行目の内容(何列あって、それぞれの列の値はどのようなものか)を記載ください。
01294941

2021/12/02 14:19

melian様 csvファイルの作成は出来たのですが、それをpythonで読み込むところで躓いています。
01294941

2021/12/02 14:22

y_waiwai様 ありがとうございます。修正しました。
01294941

2021/12/02 14:27

can110様 最初の2行はこのようになっています。 SZ VZ VA LAI BRF_toc BRF_toc(NIR) BRF_toa LAD 10  30 0 0.01 0.07 0.27 0.08 0.0049 ヘッダー1行でそこから4840行続いてあり、8列の要素に分かれています。
guest

回答1

0

ベストアンサー

前回の質問と同様に、LUT_A.csv には行毎に複数の \r(0x0d: carriage return)が含まれています。そのため、一旦バイト列として読み込んで carriage return"(ダブルクォート)を削除します。

python

1import io 2import numpy as np 3 4with open('LUT_A.csv', 'rb') as f: 5 data = f.read().decode('ascii').replace('\r', '').replace('"', '') 6 7x = np.loadtxt(io.StringIO(data), dtype=np.float64, delimiter=',', skiprows=1) 8 9print(x.shape) 10print(x[:5]) 11 12# 13(4840, 8) 14[[1.00000e+01 3.00000e+01 0.00000e+00 1.00000e-02 7.60480e-02 2.76577e-01 15 8.05580e-02 4.97600e-03] 16 [1.00000e+01 3.00000e+01 0.00000e+00 1.00000e-01 7.12020e-02 2.75142e-01 17 7.57130e-02 4.97600e-02] 18 [1.00000e+01 3.00000e+01 0.00000e+00 5.00000e-01 5.77550e-02 2.64628e-01 19 6.68640e-02 2.48800e-01] 20 [1.00000e+01 3.00000e+01 0.00000e+00 1.00000e+00 4.60930e-02 2.57484e-01 21 5.86530e-02 4.97600e-01] 22 [1.00000e+01 3.00000e+01 0.00000e+00 2.00000e+00 3.41630e-02 2.39546e-01 23 4.92160e-02 9.95200e-01]]

投稿2021/12/02 13:38

melian

総合スコア20655

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

01294941

2021/12/02 14:30

melian様 いつもありがとうございます。取り急ぎお礼を申し上げます。 一度参考にさせていただきじっくり自分で取り組んでみたいと思います。
melian

2021/12/02 14:34

この問題に時間を割いて取り組む必要は全くありません。以前から何度も申し上げている通り、問題の原因であるデータファイル(LUT_A.csv)を出力しているプログラムの修正に「じっくりと」取り組む事をお勧めします。
01294941

2021/12/03 20:31

--------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-3-26712b0a8a1f> in <module> 5 data = f.read().decode('ascii').replace('\r', '').replace('"', '') 6 ----> 7 x = np.loadtxt(io.StringIO(data), dtype=np.float64, delimiter=',', skiprows=1) 8 9 print(x.shape) ValueError: could not convert string to float: '' ここでエラーが出てしまいます、、
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問