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

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

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

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Python

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

Q&A

解決済

3回答

2064閲覧

pythonでcsvを取得したい

morutemu

総合スコア45

Raspberry Pi

Raspberry Piは、ラズベリーパイ財団が開発した、名刺サイズのLinuxコンピュータです。 学校で基本的なコンピュータ科学の教育を促進することを意図しています。

Python

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

0グッド

0クリップ

投稿2018/04/22 08:19

pythonでcsvをリスト形式で取得し、そこから「日付」をキーにして検索し、「状況」を取得するようなものを作りたいのですが、リスト形式をどのように検索できるようにしたらよいかかわからず困っております。

csv_file.csv

日付曜日状況
2018/4/1
2018/4/2×
2018/4/3

ソースコード

python

1#!/usr/bin/env python 2# -*- coding: utf-8 -*- 3 4# +++ モジュール +++ 5import csv 6 7# csv読み込み処理 8def read_csv(self): 9 # 変数 10 list_data = [] 11 12 # csvファイル読み込み 13 with open("./csv_file.csv", "r", encoding="ms932", errors="", newline="" ) as f: 14 # csv読み込み 15 reader = csv.reader(f) 16 17 # csvのヘッダー(一行目)を読み飛ばす 18 header = next(reader) 19 20 # csvファイルをリスト形式で保存 21 for row in reader: 22 list_data.append(row) 23 24 # リストデータを返す 25 return list_data 26 27# メイン処理 28def main(self): 29 today_is = "2018/4/2" 30 # csvの読み込み 31 list_data = read_csv() 32 33 # ここから検索させたい… 34 35# +++ 初期動作 +++ 36if __name__ == "__main__": 37 main()

リストを辞書形式にしないとだめなのでしょうか??
どうか教えてください。

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

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

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

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

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

guest

回答3

0

ベストアンサー

投稿2018/04/22 08:24

hayataka2049

総合スコア30933

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

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

morutemu

2018/04/24 01:04

すみません、ちなみに def read_csv(self): # csvファイルを読み込む gbd_df = pd.read_csv("./csv_file.csv" ,encoding='cp932') print(gbd_df.query('日付 == "2018/4/24"')) このような形で検索出来たのですが、状況のデータを取り出すにはどうしたら良いでしょうか??
hayataka2049

2018/04/24 04:14 編集

このように扱えます。 >>> import pandas as pd >>> df = pd.DataFrame([[1,2,3],[4,5,6],[7,8,9]], columns=["hoge","fuga","piyo"]) >>> df hoge fuga piyo 0 1 2 3 1 4 5 6 2 7 8 9 >>> df.query("hoge == 1") hoge fuga piyo 0 1 2 3 >>> df.query("hoge == 1")["piyo"] 0 3
morutemu

2018/04/24 10:05

>>> df.query("hoge == 1")["piyo"] 0 3 すみません、こちらを3のみ取得したい場合はどうしたらよいでしょうか? strなどで。。 後で、if文などに使いたいと思いまして。
hayataka2049

2018/04/24 10:09

df.query("hoge == 1")["piyo"].values[0]でいけます
morutemu

2018/04/24 11:17

おおおおお!ありがとうございます! いけました!! ありがとうございました。
morutemu

2018/04/24 11:57

おおっ!ありがとうござます! 書き換えます!
guest

0

self不要

  • def read_csv(self): などの関数定義の第1引数に self を書いていますが不要です。
  • おそらく、クラスのメソッドに書かれている物を真似しようと思ったのかと思いますがこのコードの中では不要です。(今実行してもエラーになるでしょう。

実行して小さく考えてみよう

  • read_csv()の結果は何になっていますか? 予定通りの結果でしょうか?
  • 狙い通りになっている可能性もありますし、狙いと違うかもしれません。それを踏まえて次の事を考えましょう。

検索したい

  • どうなれば検索できるたといえるのでしょうか?
  • dictのキーに日付を入れておいたとして、結果はどのような形式が良いのでしょうか?

投稿2018/04/23 05:45

terapyon

総合スコア313

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

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

morutemu

2018/04/23 08:16

そうですねぇ、イメージとしては、 raspberry piを付けっぱなしにして、毎日今日の日付を取得し、その日付からcsvの「日付」をさがして「状況」の値を取得するようなものができると嬉しいです。
guest

0

参考情報

  • pythonでのcsvファイルの読み込み

https://qiita.com/motoki1990/items/0274d8bcf1a97fe4a869

投稿2018/04/22 13:31

katoy

総合スコア22324

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問