kharuka2016のブログ

日々の出来事を書き留めておくブログ

pandas-データの並び替えと順番-

入門 Python 3

入門 Python 3

目次

前提条件

OS:Windows 10 64-bit, version 1607

Anaconda 4.4.0(Python 3.6 version 64-bit)インストール

NumPyのインストール

手順概要

1.コマンドプロンプトでIPython Notebookを起動します。

2.データの並び替えと順番

手順

1.コマンドプロンプトでIPython Notebookを起動します。

ipython notebook

2.データの並び替えと順番

2.1.numpy、panadasとpandasからSeriesとDataFrameをインポートします。

import numpy as np
import pandas as pd
from pandas import Series,DataFrame

2.2.Seriesを作成します。

ser1=Series(range(5),index=['C','A','B','E','D'])
ser1

Out:

C    0
A    1
B    2
E    3
D    4
dtype: int32

2.3.indexでsortします。

ser1.sort_index()

Out:

A    1
B    2
C    0
D    4
E    3
dtype: int32

f:id:kharuka2016:20170808144920p:plain

2.4.sort_index()はser1を参照してsortしているだけなので、ser1は変更されていません。

ser1

Out:

C    0
A    1
B    2
E    3
D    4
dtype: int32

2.5.今度はorder()を使って値でsortしてみましょう。

ser1.order()

2.6.エラーが出たのでpandasのバージョンを確認してみます。

pd.__version__

Out:

'0.20.1'

version:0.20.3のドキュメントではありますが、order()というattributeが無いためエラーが出ているようです。

参考:

API Reference — pandas 0.20.3 documentation

f:id:kharuka2016:20170808144924p:plain

2.7.order()の代わりにsort_values()を使えばうまくいきました。

ser1.sort_values()

Out:

C    0
A    1
B    2
E    3
D    4
dtype: int32

f:id:kharuka2016:20170808144928p:plain

2.8.randnを使ってSeriesを作成します。

from numpy.random import randn
ser2=Series(randn(10))
ser2

Out:

0   -1.528137
1   -0.254189
2   -0.980188
3   -1.362352
4    0.128021
5    0.644094
6   -0.596735
7   -1.711766
8    1.411017
9    0.921859
dtype: float64

f:id:kharuka2016:20170808144932p:plain

2.9.rank()を使うことで値が小さいものから順に番号を振ってくれます。

ser2.rank()

Out:

0     2.0
1     6.0
2     4.0
3     3.0
4     7.0
5     8.0
6     5.0
7     1.0
8    10.0
9     9.0
dtype: float64

2.10.sortもorder()同様使えないみたいなのです。

ser2.sort

f:id:kharuka2016:20170808144936p:plain

2.11.sort_values(inplace=True)を使うことで参照ではなく、実際にser2をsortしてくれます。

ser2.sort_values(inplace=True)
ser2

Out:

7   -1.711766
0   -1.528137
3   -1.362352
2   -0.980188
6   -0.596735
1   -0.254189
4    0.128021
5    0.644094
9    0.921859
8    1.411017
dtype: float64

Pythonではじめる機械学習 ―scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎

Pythonではじめる機械学習 ―scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎

参考:

udemy 実践Pythonデータサイエンス

www.udemy.com

Pythonスタートブック

Pythonスタートブック