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

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

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

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

Python 3.x

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

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

Q&A

解決済

1回答

4186閲覧

pandasのDFのインデックス処理がよくわかりません。

退会済みユーザー

退会済みユーザー

総合スコア0

Jupyter

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

Python 3.x

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

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

0グッド

0クリップ

投稿2020/10/14 09:17

編集2020/10/14 09:19

以下の形でDFがあるのですが、indexの1列を指定してデータを取得しようとするとエラーになります。
どの様に列のデータを取得すれば良いのでしょうか。

|データ取得日時|(CO2濃度, SEN05FFC0101)|(CO2濃度, SEN05FFC0222)|-|-|
|:--:|:--:|:--:|:--:|

2020-07-06 07:05:0057.057.0--

以下コマンドで列を取得しようとするとエラーになります。
助けてください。宜しくお願い致します。

python

1df7_mg_05['(CO2濃度, SEN05FFC0101)']

error

1--------------------------------------------------------------------------- 2KeyError Traceback (most recent call last) 3~/todakensetu_analytics/.venv/lib/python3.7/site-packages/pandas/core/indexes/base.py in get_loc(self, key, method, tolerance) 4 2890 try: 5-> 2891 return self._engine.get_loc(casted_key) 6 2892 except KeyError as err: 7 8pandas/_libs/index.pyx in pandas._libs.index.IndexEngine.get_loc() 9 10pandas/_libs/index.pyx in pandas._libs.index.IndexEngine.get_loc() 11 12pandas/_libs/hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable.get_item() 13 14pandas/_libs/hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable.get_item() 15 16KeyError: '(CO2濃度, SEN05FFC0101)' 17 18The above exception was the direct cause of the following exception: 19 20KeyError Traceback (most recent call last) 21<ipython-input-61-e686acd53797> in <module> 22----> 1 df7_mg_05['(CO2濃度, SEN05FFC0101)'] 23 24~/todakensetu_analytics/.venv/lib/python3.7/site-packages/pandas/core/frame.py in __getitem__(self, key) 25 2900 if self.columns.nlevels > 1: 26 2901 return self._getitem_multilevel(key) 27-> 2902 indexer = self.columns.get_loc(key) 28 2903 if is_integer(indexer): 29 2904 indexer = [indexer] 30 31~/todakensetu_analytics/.venv/lib/python3.7/site-packages/pandas/core/indexes/base.py in get_loc(self, key, method, tolerance) 32 2891 return self._engine.get_loc(casted_key) 33 2892 except KeyError as err: 34-> 2893 raise KeyError(key) from err 35 2894 36 2895 if tolerance is not None: 37 38KeyError: '(CO2濃度, SEN05FFC0101)'

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

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

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

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

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

guest

回答1

0

ベストアンサー

本当に「以下の形でDFがある」なら、次のサンプルコードのようにdf['(CO2濃度, SEN05FFC0101)']で問題なくデータフレームから値を取得できるので、おそらくそれ以前の段階でデータフレームが意図した形になっていません。

columnsで列名のリストが得られますから、実際にどんな列名になっているか確認してください。もしかすると、途中のカンマで分割されているかもしれません。

Python

1import pandas as pd 2import io 3 4txt = """ 5データ取得日時\t(CO2濃度, SEN05FFC0101)\t(CO2濃度, SEN05FFC0222) 62020-07-06 07:05:00\t57.0\t57.0 72020-07-06 07:10:00\t58.0\t56.0 82020-07-06 07:15:00\t59.0\t55.0 9""" 10 11df = pd.read_table(io.StringIO(txt), parse_dates=['データ取得日時']) 12 13# print(df) 14print(df.columns) 15# print(df['データ取得日時']) 16print(df['(CO2濃度, SEN05FFC0101)']) 17# print(df['(CO2濃度, SEN05FFC0222)'])

results

1Index(['データ取得日時', '(CO2濃度, SEN05FFC0101)', '(CO2濃度, SEN05FFC0222)'], dtype='object') 20 57.0 31 58.0 42 59.0 5Name: (CO2濃度, SEN05FFC0101), dtype: float64

投稿2020/10/14 11:03

編集2020/10/14 11:34
Daregada

総合スコア11990

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

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

退会済みユーザー

退会済みユーザー

2020/10/14 11:11

こちらありがとうございました。 columnsでしらべたら、jupyter上に表示される値「(CO2濃度, SEN05FFC0102)」 実際の値が違いました。 実際は、「('CO2濃度', 'SEN05FFC0102')」でした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問