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

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

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

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

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

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

Q&A

解決済

3回答

22990閲覧

PythonでCSVの内容を列ごとにリストへ格納する方法

AnonymousMe

総合スコア17

CSV

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

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

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

0グッド

0クリップ

投稿2018/12/12 01:09

前提・実現したいこと

PythonでCSVファイルの内容を列ごとに別々のリストへ格納するにはどのようにすれば良いのでしょうか?
下記でリストへは格納できるのですが、全て格納されてしまいます。

###CSVファイル内容

csv

1title,firstname,lastname 2profile01,taro,yamada 3profile02,jiro,suzuki

試したこと

python

1import csv 2 3list = [] 4 5with open('test.csv', 'r', encoding="utf-8") as f: 6 for line in csv.DictReader(f): 7 list.append(line)

やりたいこと

python

1title = ['profile01', 'profile02'] 2firstname = ['taro', 'jiro'] 3lastname = ['yamada', 'suzuki']

のようなリストをCSVから作成したいです。
ご教授いただけると助かります。

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

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

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

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

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

guest

回答3

0

もしかして、一行目が可変なのかな?と思い、dictionaryで持つ形を考えてみました。

python

1import csv 2 3 4is_first = True 5header_list = [] 6d = dict() 7 8with open("test.csv", "r", encoding="utf-8") as file_obj: 9 csv_obj = csv.reader(file_obj, delimiter=",") 10 for row in csv_obj: 11 if is_first: 12 for i in range(len(row)): 13 header_list.append(row[i]) 14 d[row[i]] = [] 15 is_first = False 16 else: 17 for i, header in enumerate(header_list): 18 d[header].append(row[i]) 19 20print(d)

terminal

1{'title': ['profile01', 'profile02'], 'firstname': ['taro', 'jiro'], 'lastname': ['yamada', 'suzuki']}

投稿2018/12/12 17:26

iTach

総合スコア74

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

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

0

pandasの利用がおすすめです。

py

1import pandas as pd 2 3df = pd.read_csv('test.csv') 4 5title = list(df['title']) 6firstname = list(df['firstname']) 7lastname = list(df['lastname'])

投稿2018/12/12 08:19

teratail_chan

総合スコア12

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

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

0

自己解決

python

1list.append(line['key'])

としてFor文でループ回すことで列ごとに格納できました!
みなさまありがとうございました。

投稿2018/12/13 00:19

AnonymousMe

総合スコア17

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問