1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Pandasで世界の大学のランキングをソートする(excelデータ利用)no.7

Posted at

見出しを追加 (25).png
こんにちは、まゆみです。

Pandas についてシリーズで記事を書いています。(Pandas の基礎的な部分から書いていますので分からなくなった時は他のPandas関連の記事も参考にどうぞ)

今回の記事は第7回目の記事になります。

今回は、data.worldさんのサイトからWorld University Rankings 2019-20 という2019年から2020年の世界の大学ランキングについてのデータを使わせていただきます。

この記事を読めば

  • condaでxlrd とopenpyxlをインストールする方法
  • EXCELファイルを読み込む方法
  • Seriesにpythonの機能を使う時の注意点

などが分かります

ではさっそく始めていきますね。

#EXCELファイルを読み込む

今回読み込むデータは下記のexcel のデータになります
(※前回までは、CSVのデータを使っていました。)

スクリーンショット 2021-03-14 121132.jpg

Pandas でEXCELファイルを読み込むには『xlrd』と『openpyxl』というライブラリーが必要であり、今回新たにインストールします

(Anaconda の使い方やconda でのライブラリーのインストール方法が分からない方はこちらの記事を参考にしてください。)
スクリーンショット 2021-03-14 121132.jpg

##xlrdとopenpyxlをインストールする

xlrd とopenpyxlをインストールする前に、どの仮想環境にインストールするか決めてくださいね。

そしてまず、その仮想環境をactivate しましょう

スクリーンショット 2021-03-14 125756.jpg

(仮想環境って何?っていう人は こちらの記事 の『conda でenvironment を作る』という項目に書いています)

上記のスクショのように、あなたが今回ライブラリーをインストールしたい仮想環境が表示されていたらOKです。

確認後xlrd と openpyxl をインストールしましょう

conda install xlrd openpyxl

とAnaconda Prompt に打ち込んでエンターキーを押してください。

するとインストールが始まり、最後に

Proceed([y]/n)?

と聞いてきますから 『y』をキーで打ち込みしょう

スクリーンショット 2021-03-14 120542.jpg

Anaconda Prompt に done と出れば無事にインストールができています。

##EXCELファイルを読み込む

jupyter notebook でEXCELのデータを読み込みます。

import pandas as pd
pd.read

とread まで打ち込んだ時点で

Shift + Tab

を押すと選択肢が表示されます

スクリーンショット 2021-03-14 130430.jpg

今回はEXCELファイルを読み込みたいので『read_excel』を選択しましょう

CSVファイルを読み込み、DataFrame をSeries に変えた時と同じ要領で、EXCELのデータからSeriesのオブジェクトを作りましょう

※CSVファイルの読み込み方などが分からない方はこちらの記事を参考にどうぞ

下記のようにSeries のオブジェクトを作ることができました。

スクリーンショット 2021-03-14 131055.jpg

#Python にビルトインされている機能を使う

EXCELデータからPandasのSeries オブジェクトを作った後は簡単でして、Python 自体の機能もSeries オブジェクトに使うことができます

例えば、トップ15位までの大学名を出したいのならpython でrangeを指定するときと同じやり方をします

(ちなみに今回作ったSeries は university_rank という変数に代入しています)

university_rank[:15]

でトップ15校の世界の大学名を表示できました。

スクリーンショット 2021-03-14 132115.jpg

また今回のランキングに載っている大学名を下から順に15校並べたい時も

university_rank[-1:-15:-1]

とすれば一番下に書かれた大学名から順番に表示されます

スクリーンショット 2021-03-14 132444.jpg

##Python のA in [リスト]をSeries でも使える?
A in [A, B, C, D, E].png

Python でリスト型データの中に、ある特定の文字列や数値が入っているかどうかを調べるのに

A in [リスト]

を使いますよね

A がリストの中にあれば『True』を返してくれますし、無ければ『False』になります

例えば下記のスクショですと3はリストの中にあるのでTrue を返しています

スクリーンショット 2021-03-14 134048.jpg

では同じように、Series に対しても使えるでしょうか?

今回使っているデータの中に『"University of Tokyo"』が入っているのかな?と調べたい時。

結果は下のスクショのようになりました。

スクリーンショット 2021-03-14 134332.jpg

これは、(in Series名)にすると、その『index』をコンピューターが見て、その中に"University of Tokyo" があるかどうかを調べるからです。

そうではなく、あくまでもSeriesのvalueにあたる部分を調べたいのでSeriesの後ろに .values を付ける必要があります

そして"University of Tokyo" は13位に表示されていますので、True を返してくれます。

#まとめ

今回の記事はこれくらいで終わりにします。<(_ _)>

Pandasシリーズの記事も7記事目になり、だんだんPandasでできることも多くなってきました。

また引き続き、紹介していきますね。

よろしくお願いしますっ!

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?