🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Jupyter

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

openpyxl

openpyxlは、Excel2007以降のファイル(xlsx/xlsm/xltx/xltm)を読み書きするためのPythonライブラリです。

Python

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

pandas

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

Q&A

解決済

1回答

1251閲覧

python3でexcelの表を参照したい、会員番号を指定したら会員名を返してほしい

kamotake

総合スコア4

Jupyter

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

openpyxl

openpyxlは、Excel2007以降のファイル(xlsx/xlsm/xltx/xltm)を読み書きするためのPythonライブラリです。

Python

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

pandas

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

0グッド

0クリップ

投稿2020/08/06 15:14

環境

python3
jupyter notebook
windows10

質問

ローカルに保存されている会員名簿表を参照したい。具体的には会員番号を入力したら同じ列にある会員名を返してほしい。

******.xlsという名前のexcelファイルを読み込む。

種別会員番号会員名
a1001安倍晋三
b1002麻生太郎
a1003小泉進次郎

python3のコード内で1001と打てば対応する同じ行の安倍晋三を出力してほしい。同様に1002と打てば麻生太郎を出力してほしい。

以下のコードは#エラーが出てしまう、と書いたところ以外は問題なく動く。

python3

1import openpyxl 2import pandas as pd 3 4import_file_path = 'C:\Users\****\Desktop\****\******.xls' 5excel_sheet_name = '会員名簿' 6 7name_table = pd.read_excel(import_file_path, sheet_name = excel_sheet_name) 8 9name = name_table[name_table['会員番号']=='1001']#ここにエラーが出てしまう、それ以前の部分では問題なく実行できる。 10 11#jupyter notebookなのでnameと打つことで「安倍晋三」が出力されてほしい 12name

error

1C:\Users****\anaconda3\lib\site-packages\pandas\core\ops\array_ops.py:253: FutureWarning: elementwise comparison failed; returning scalar instead, but in the future will perform elementwise comparison 2 res_values = method(rvalues)

調べたこと

一通りネットでopenpyxl, read_excel, python & excelと調べたがめぼしい情報はヒットしなかった。

よろしくお願いいたします。

どのように質問すればよいかわからなかったが、回答よろしくお願いいたします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

エラーメッセージから判断すると、会員番号が数値となっていて、比較の際にシングルクォートでくくった文字列と比較したのが原因と思います。下記のようにシングルクォートを外して数値と比較する必要があります。

python

1name = name_table[name_table['会員番号']==1001]

投稿2020/08/06 17:30

yymmt

総合スコア1615

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

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

kamotake

2020/08/07 01:10

ありがとうございます!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問