[解決済み] Python を使って csv ファイルをヘッダ付きでインポートする方法 (最初の列が非数値の場合)
2023-07-08 12:39:25
質問
これは以前の質問の詳細ですが、私がpythonを深く掘り下げるにつれて、pythonがcsvファイルをどのように扱うかについてますます混乱しています。
私はcsvファイルを持っていて、それはそのままでなければなりません(例えば、それをテキストファイルに変換することはできません)。 これは、5 行×11 列の配列または行列、またはベクトルに相当します。
私は、ここや他の場所で見つけたさまざまな方法を使用して csv を読み込もうとしました (例.
python.org
) を使って、最初の行と最初の列 = 非数値である列と行の関係を維持するように試みました。 残りは浮動小数点数であり、正と負の浮動小数点数が混在しています。
私がしたいことは、csvをインポートし、それをpythonでコンパイルして、もし私が列のヘッダーを参照するなら、それは行に格納されているその関連する値を返すことでしょう。例えば
>>> workers, constant, age
>>> workers
w0
w1
w2
w3
constant
7.334
5.235
3.225
0
age
-1.406
-4.936
-1.478
0
などなど...
私はこの種のデータ構造を処理するためのテクニックを探しています。 私はpythonに非常に新しいです。
どのように解決するのですか?
Pythonのcsvモジュールはデータを行単位で扱うので、そのようなデータを見るのは通常の方法です。あなたは列単位のアプローチを望んでいるようです。ここにその方法の1つがあります。
あなたのファイルの名前が
myclone.csv
という名前のファイルで
workers,constant,age
w0,7.334,-1.406
w1,5.235,-4.936
w2,3.2225,-1.478
w3,0,0
このコードはあなたにアイデアを与えてくれるはずです。
>>> import csv
>>> f = open('myclone.csv', 'rb')
>>> reader = csv.reader(f)
>>> headers = next(reader, None)
>>> headers
['workers', 'constant', 'age']
>>> column = {}
>>> for h in headers:
... column[h] = []
...
>>> column
{'workers': [], 'constant': [], 'age': []}
>>> for row in reader:
... for h, v in zip(headers, row):
... column[h].append(v)
...
>>> column
{'workers': ['w0', 'w1', 'w2', 'w3'], 'constant': ['7.334', '5.235', '3.2225', '0'], 'age': ['-1.406', '-4.936', '-1.478', '0']}
>>> column['workers']
['w0', 'w1', 'w2', 'w3']
>>> column['constant']
['7.334', '5.235', '3.2225', '0']
>>> column['age']
['-1.406', '-4.936', '-1.478', '0']
>>>
数値を浮動小数点にするためには、次のようにします。
converters = [str.strip] + [float] * (len(headers) - 1)
を前面に出して、次のようにします。
for h, v, conv in zip(headers, row, converters):
column[h].append(conv(v))
のように、各行ごとに記述します。
関連
-
[解決済み】Pythonでcsvファイルを編集するときにヘッダをスキップする。
-
[解決済み] __init__.py でも「非パッケージで相対的なインポートを試みた」を修正する方法
-
[解決済み] Pythonで "with open "を使って複数のファイルを開くにはどうしたらいいですか?
-
[解決済み] pandasを使った "大量データ "ワークフロー【終了しました
-
[解決済み] PandasとPythonでCSVファイルを読み込むとUnicodeDecodeErrorが発生する。
-
[解決済み] CSVファイルをMySQLのテーブルにインポートするには?
-
[解決済み] [Solved] .whlファイル付きのPythonパッケージをインストールする方法は?
-
[解決済み】Pythonで作成したCSVファイルの行間に空白行がある。
-
[解決済み] 古いバージョンのPythonにおける辞書のキーの並び順
-
[解決済み] Flaskで非同期タスクを作る
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] DataFrameの文字列、dtypeがobjectの場合
-
[解決済み] Pythonのキャッシュライブラリはありますか?
-
[解決済み] Pythonの構文に新しいステートメントを追加することはできますか?
-
[解決済み] PythonでSVGからPNGに変換する
-
[解決済み] Flask でグローバル変数はスレッドセーフか?リクエスト間でデータを共有するには?
-
[解決済み] CSVデータを処理する際、1行目のデータを無視する方法を教えてください。
-
[解決済み] Pythonでファイルの読み込みと上書きをする
-
[解決済み] 単純な文字列からtimedeltaオブジェクトを作成する方法
-
[解決済み] PythonのRequestsモジュールを使ってWebサイトに "ログイン "するには?
-
[解決済み] pipの依存性/必要条件をリストアップする方法はありますか?