Pands入門---SeriesとDataFrame
3430 ワード
Pands入門-SeriesとData Frame
概説:pandsはデータ分析をより速く簡単にするための高級データ構造と操作ツールを含み、pandsはNumpyに基づいて構築された.pandsは過去数年間で非常に強力なライブラリに成長してきました.
パンダスのデータ構造紹介
パンダスを導入する
Series
Seriesは一次元配列に似たオブジェクトで、データのセット(各種Numpyデータタイプ)と関連するデータラベルのセット(すなわちインデックス)から構成されています.一組のデータだけで一番簡単なSeriesを生成できます.
Seriesにも似たような方法があります.
Data Frame
DataFrameはテーブル型のデータ構造であり、各列は異なる値タイプ(数値、文字列、ブール型の値)であってもよい規則的な列を含んでいます.DataFrameは行の索引もあれば、列の索引もあります.Seriesからなる辞書として見られます.他の類似のデータ構造と比較して,DataFrameにおける行と列に向かう動作は基本的に平衡である.実は、DataFrameにおけるデータは、リスト、辞書または他のデータ構造ではなく、1つまたは複数の二次元ブロックで格納されている.
DataFrameを構築する方法はたくさんあります.最も一般的な方法は、等長リストまたはNumpy配列からなる辞書を直接に導入することです.
概説:pandsはデータ分析をより速く簡単にするための高級データ構造と操作ツールを含み、pandsはNumpyに基づいて構築された.pandsは過去数年間で非常に強力なライブラリに成長してきました.
パンダスのデータ構造紹介
パンダスを導入する
>>> from pandas import Series,DataFrame
>>> import pandas as pd
pandsは二つの主要なデータ構造があります.SeriesとDataFrameです.Series
Seriesは一次元配列に似たオブジェクトで、データのセット(各種Numpyデータタイプ)と関連するデータラベルのセット(すなわちインデックス)から構成されています.一組のデータだけで一番簡単なSeriesを生成できます.
>>> obj = Series([4,7,-5,3])
>>> obj
0 4
1 7
2 -5
3 3
dtype: int64
Seriesの文字列は、索引は左、値は右と表現されます.Seriesのvaluesとindex属性を通じて、その配列表現形式と索引オブジェクトを取得できます.>>> obj.values
array([ 4, 7, -5, 3], dtype=int64)
>>> obj.index
RangeIndex(start=0, stop=4, step=1)
通常、作成されたSeriesには、各データポイントをマークできるインデックスが付いています.>>> obj2 = Series([4,7,-5,3],index=['d','b','a','c'])
>>> obj2
d 4
b 7
a -5
c 3
dtype: int64
普通のNumpyに比べてインデックス方式でSeriesの単一またはグループの値を選ぶことができます.>>> obj2['a']
-5
>>> obj2[['a','b']] # []
a -5
b 7
dtype: int64
Numpy配列演算は、インデックスと値の間のリンクを保持します.>>> obj2 * 2
d 8
b 14
a -10
c 6
Seriesは、インデックス値からデータ値へのマッピングであるので、一定長の秩序辞書としてもよい.>>> 'b' in obj2
True
データをPython辞書に保存すれば、直接Seriesに変換できます.>>> sdata = {'test':1,'hello':2}
>>> obj3 = Series(sdata)
>>> obj3
hello 2
test 1
dtype: int64
NaN(数字ではない)は、pansdasにおいて、欠落またはNA値を表しています.欠落(missing)またはNAを使用して欠落データを表します.pandsのisnullとnotnull関数は、欠落データを検出するために使用できます.Seriesにも似たような方法があります.
>>> states = ['test','haha']
>>> obj4 = Series(sdata,states)
>>> obj4
test 1.0
haha NaN
dtype: float64
>>> obj4.isnull()
test False
haha True
dtype: bool
Seriesの重要な機能は、算術演算において自動的に異なる索引のデータを入力することです.Seriesオブジェクト自体とインデックスは、他のキー機能との関係が非常に密接なname属性を持っています.>>> obj4.name = 'sunpeng'
>>> obj4.index.name = 'llala'
>>> obj4
llala
test 1.0
haha NaN
Name: sunpeng, dtype: float64
Seriesのインデックスは、値を割り当ててその場で修正することもできます.Data Frame
DataFrameはテーブル型のデータ構造であり、各列は異なる値タイプ(数値、文字列、ブール型の値)であってもよい規則的な列を含んでいます.DataFrameは行の索引もあれば、列の索引もあります.Seriesからなる辞書として見られます.他の類似のデータ構造と比較して,DataFrameにおける行と列に向かう動作は基本的に平衡である.実は、DataFrameにおけるデータは、リスト、辞書または他のデータ構造ではなく、1つまたは複数の二次元ブロックで格納されている.
DataFrameを構築する方法はたくさんあります.最も一般的な方法は、等長リストまたはNumpy配列からなる辞書を直接に導入することです.
>>> data = {'state':['1','2'],'year':['a','b'],'pop':['x','y']}
>>> data
{'state': ['1', '2'], 'pop': ['x', 'y'], 'year': ['a', 'b']}
>>> frame = DataFrame(data)
>>> frame
pop state year
0 x 1 a
1 y 2 b
結果として、DataFrameはインデックスを自動的に加え、すべての列が順序良く並べられます.列の順序を指定すると、DataFrameの列は指定された順序で並べられます.>>> DataFrame(data,columns=['year','pop','state'])
year pop state
0 a x 1
1 b y 2
読み込んだ列がデータの中で見つからないと、NA値が発生します.辞書のマークのような方法または属性によって、DataFrameの列がSeriesとして取得されるということができる.