#pandasのSeries
pythonでデータを扱う際に、辞書型、リスト、タプルなど、いろいろな名前のデータがでてきますが、今回はSeriesでつくるデータについて、学ぼうと思います!
環境
・Mac
・Python3系
・numpy,pandas(インストールについては、こちらを参照くださいm(__)m!)
#作る前に、まずはimportします!
#pandasをpdという名前で呼ぶ指定をします
import pandas as pd
#Seriesの頭文字が大文字の点に注意してください!
from pandas import Series
次に、簡単なSeriesのデータを作ってみましょう!
my_obj = Series([2,4,6])
#このような書き方でも大丈夫です!
#my_obj = Series([2,4,6])
print(my_obj)
"""
0 3
1 6
2 9
dtype: int64
"""
出力すると、リストに入れた値(values)と、インデックス(index)とデータ型(このシリーズの場合はint)が表示されます。
それぞれの値や、インデックスにアクセスすることも可能です!
#print(my-new_obj)でも同じです。
my_new_obj.values
#array([2, 4, 6])
my_new_obj.index
#RangeIndex(start=0, stop=3, step=1)
#0から始まり、1つごとに3買い進むindexが振られていることを示します。
#Seriesのインデックスは文字列にすることも可能です!
今回は英語のテストに関するSeriesのデータを作ろうと思います。
english_test = Series([60,80,70],['A','B','C'])
print(english_test)
"""
A 60
B 80
C 70
dtype: int64
"""
インデックスがA-C君に変わりました!
また、違う作り方もあります!
#先に値を渡す!
another_english_test = Series([60,80,70])
#あとでindexを追加!
#イコールな点に注意!
another_english_test.index = (['A','B','C'])
print(another_english_test)
"""
A 60
B 80
C 70
dtype: int64
"""
ポイントの整理をします!
####ポイント
・各要素(値、インデックス)は、リストに入れて渡すこと
・後者の方法でindexを指定する場合は、イコールで値を渡すこと!
#ここからは細かい使い方を勉強していきます!
###indexから値にアクセスする!
english_test['A']
#60
###比較演算子で条件に当てはまる要素を探す
#65より大きい数字を持つインデックスと値を表示
english_test[english_test > 65]
"""
B 80
C 70
dtype: int64
"""
###シリーズを辞書型にする
#to_dict()メソッドを使う
english_test_dict = english_test.to_dict()
english_test_dict
"""
{'A': 60, 'B': 80, 'C': 70}
"""
###先程作った辞書型からシリーズ型のデータを作る
#先程作ったdict型のenglishtestをSeriesの引数に渡す。
english_text_series = Series(english_test_dict)
"""
A 60
B 80
C 70
dtype: int64
"""
###インデックスに名前を付ける
english_test.name = 'python高校object組'
print(english_test)
"""
A 60
B 80
C 70
Name: python高校object組, dtype: int64
"""
###特定のインデックスを削除する
#削除前の値
english_test
"""
A 60
B 80
C 70
Name: python高校init組, dtype: int64
"""
#drop関数を使い、indexを指定
english_test.drop('A')
"""
B 80
C 70
Name: python高校init組, dtype: int64
"""
この時、先程までは角括弧(ブラケット)に引数を渡すことが多くありましたが、dropに関しては丸括弧内に引数を書く点にご注意ください!
#おわりに
null値周りやseries型同士の足し算引き算をする方法も紹介できるのですが、長くなってしまうのでここで終わりにします!
わかりやすい方法等ございましたら、コメントにて教えていただけますと幸いです!m(__)m