Pandas入門講座|08.データの並び替えの方法【PythonのライブラリPandas】

オススメ

この動画では、pandasのDataFrameやSeriesの並び替えについて学びます。
ExcelやSQLと同じように、小さい順からの並び替え、大きい順からの並び替え。他にも2つ以上の列の並び替えができます。
他にも、ExcelやSQLではできない行方向の並び替えなどもPythonではできます。
それでは、いってみましょう!

▼目次
00:00 はじめに
01:03 Pandasのインポート
01:07 表示する列数・行数を変更
01:24 データの読み込み
02:05 DataFrameの並び替え
03:00 DataFrameの並び替え(降順)
03:10 DataFrameの並び替え(昇順)
03:23 DataFrameで2つのカラムの並び替え
03:58 DataFrameで3つのカラムの並び替え
04:12 欠損値の取り扱い
04:57 行方向の並び替え
05:42 列方向の並び替え
06:11 もとのデータフレームを変更
07:28 インデックスの並び替え
08:21 sort_indexの引数
08:45 カラムの並び替え
09:11 Seriesの並び替え(sort_values)
09:48 Seriesの並び替え(sort_index)

▼自己紹介
現在:フリーランス(マーケティング関連の人工知能開発、データ分析や業務自動化など)
前職:リクルート

▼SNS
Twitter : https://twitter.com/kino_code/likes
Facebook :https://www.facebook.com/%E3%82%AD%E3%83%8E%E3%82%B3%E3%83%BC%E3%83%89-105693727500005/

▼文字書き起こし
Pandasインポート
import pandas as pd
それでは、Pandasをインポートするところから始めていきましょう。
まず、Pandasをインポートする記述を書きます。
「import pandas as pd」を書きます。
「as」は、ライブラリ名(pandas)を好きな名前で使うことができます。
したがって、この記述により「pandas」を「pd」という名前で使うことができます。
エラーにならず、インポートが完了しました。

表示する列数・行数を変更
pd.set_option(‘display.max_columns’, None) # 最大表示列数
pd.set_option(‘display.max_rows’, 5) # 最大表示行数
次に、表示する列数・行数を変更します。
今回は表示させる列数は制限なし、行数は10行とします。
レッスン6で説明しましたが、表示する列や行数の変更は、「pd.set_option」を使いましたよね。
実行します。

データフレームの読み込み
df = pd.read_excel(‘sample.xlsx’,sheet_name=’実績管理表’)

df
続いてレッスンで使うデータを説明します。
今回はエクセルデータを使います。
このデータはあるアパレル会社の販売データになります。
社員ごとに何をいくら売上したのかがわかります。
エクセルを読み取るにはread_excelメソッドを使いました。
これはレッスン6で説明しました。
そこでは説明していなかったのですが、エクセルのシートを指定して読み取ることができます。
heet_nameという引数にシート名を渡せばよいです。
実行してみましょう。
読み取れました。

DataFrameの並び替え
df.sort_values(by=’売上金額(円)’)
それではデータフレームの並び替えをしてみましょう。
売上金額が少ない順に並び替えをします。
DataFrameの並び替えは、sort_valuesメソッドを使います。
sort_valuesと書いて丸括弧。丸括弧の中にbyを書きます。ここに並び替えをたいカラム名を渡します。
実行します。
人口の少ない順に並び替えができした。
ちなみに、小さいものから大きいものに並び替えをすることを昇順に並び替えといいます。
数字でいうと小さいものから大きいものですが、平仮名やカタカナだと「あ」から「わをん」の「ん」まで、アルファベットがaからzまでも昇順になります。
逆に、大きいものから小さいものに並び替えをすることを降順といいます。平仮名やカタカナだと「ん」から「あ」の順、zからaまでも降順になります。

DataFrameの並び替え(降順)
df.sort_values(by=’売上金額(円)’,ascending=False)
次に降順に並び替えをしてみましょう。
ascendingという引数にfalseを渡します。
実行してみましょう。
降順に並び替えができました。

DataFrameの並び替え(昇順)
df.sort_values(by=’売上金額(円)’,ascending=True)
ちなみに、先ほどascendingの引数に何も設定しなければデフォルトでTrueになっています。
実行してみましょう。
昇順になっています。

DataFrameで2つのカラムの並び替え
df.sort_values(by=[‘氏名’,’売上金額(円)’])
2つのカラムを並び替えたい場合はどのようにすればいいでしょうか?
その場合は、byの引数にリストで渡します。
氏名と売上金額で並び替えてみましょう。
実行してみます。
氏名で昇順で並び替えられ、氏名の中で売上が昇順に並び替えができています。
df.sort_values(by=[‘氏名’,’売上金額(円)’],ascending=[True,False])
氏名を昇順、売上金額は降順に並び替えてみましょう。
ascendingにTrueとFalseをリストで渡します。
実行しましょう。
氏名は昇順、売上金額は降順に並び替えができています。

DataFrameで3つのカラムの並び替え
df.sort_values(by=[‘性別’,’氏名’,’売上金額(円)’],ascending=[True,True,False])
3つのカラムの並び替えも可能です。
性別順に、氏名順に並び替えて、売上金額の降順で並び替えてみましょう。
できているようです。

欠損値の取り扱い
df.sort_values(by=[‘性別’,’氏名’,’売上金額(円)’],ascending=[True,True,False])
3つのカラムの並び替えも可能です。
性別順に、氏名順に並び替えて、売上金額の降順で並び替えてみましょう。
できているようです。df = pd.read_excel(‘sample.xlsx’,sheet_name=’実績管理表_空白’)
df.sort_values(by=’氏名’,ascending=True)
セルに空白がある場合はどのようになるでしょうか?
「実績管理表_空白’」というワークシートを読み込んだ上で、氏名の昇順で並び替えてみましょう。
実行してみます。
空白のセルが一番下に来ていますね。
このように値が入っていない部分のことを欠損値といいます。
df = pd.read_excel(‘sample.xlsx’,sheet_name=’実績管理表_空白’)
df.sort_values(by=’氏名’,ascending=True)
では、降順に並び替えた場合、欠損値が一番最初にくるでしょうか?
実行します。
この場合でも、欠損値が一番最後にきています。
df.sort_values(by=’氏名’,ascending=False,na_position=’first’)

実行してみましょう。
欠損値が一番最初にきています。
df.sort_values(by=’氏名’,ascending=False,na_position=’last’)

続きは文字書き起こしブログにて。

▼文字書き起こしブログ
https://kino-code.com/pandas_sort/

#PythonとPandas #Pandasの使い方 #Pandas入門

▼お仕事のお問い合わせ
キノコードでは、仕事の自動化の開発業務&コンサルティング業務のみを現在受け付けております。
お問い合わせ先かTwitterのDMか、「キノコードトップページ→概要」にあるメールアドレスまでお問い合わせください。

コメント

  1. 直樹 より:

    いつもいい動画をありがとうございます。
    pandas入門07までのcsvデータは保存していたのですが、以降で使用するエクセルなどのファイルは保存できないまま、▼文字書き起こしブログが停止となりました。以降の学習動画で使用するエクセル(csv)ファイルを何等かの方法で入手させていただくことはできないでしょうか?慣れた方ならダミーデータでもいいのかもしれませんが、私は手本どおりにできないと前に進めなくて・・・。
    無償でご提供いただいているのに申し訳ございません。

  2. Farm Animal より:

    ここの単元は簡単だったぜ

  3. shiho より:

    ファイルのDLができず、ずっとさぼっていましたが、DLできるようにしてくださってありがとうございます。
    すっかりモチベが下がっていましたが、また勉強を再開させていただきます。
    有益な動画を沢山ありがとうございます。

タイトルとURLをコピーしました