Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonデータの分析と視覚化


Pandasは、データサイエンスと分析で最も人気のあるPythonライブラリの1つです。 Pandasライブラリは、データの操作、分析、およびクリーニングに使用されます。これは、純粋にCで記述された低レベルのNumPyを高レベルで抽象化したものです。このセクションでは、アナリストまたはデータサイエンティストとして知っておく必要のある最も重要な(最も頻繁に使用される)ことをいくつか取り上げます。

ライブラリのインストール

pipを使用して必要なライブラリをインストールできます。コマンド端末で以下のコマンドを実行するだけです:

 pip intall pandas 

DataFrameとシリーズ

まず、パンダの2つの主要な基本データ構造を理解する必要があります。 DataFrameとシリーズ。パンダをマスターするには、これら2つのデータ構造をしっかりと理解する必要があります。

シリーズ

Seriesは、Pythonの組み込み型リストに似ているオブジェクトですが、各要素またはインデックスにラベルが関連付けられているため、これとは異なります。

>>>パンダをpdとしてインポート>>>my_series=pd.Series([12、24、36、48、60、72、84])>>> my_series0 121 242 363 484 605 726 84dtype:int64 

上記の出力では、「インデックス」が左側にあり、「値」が右側にあります。また、各Seriesオブジェクトにはデータ型(dtype)があり、この場合はint64です。

インデックス番号で要素を取得できます:

>>> my_series [6] 84 

インデックス(ラベル)を明示的に提供するには、次を使用します:

>>> my_series =pd.Series([12、24、36、48、60、72、84]、index =['ind0'、'ind1'、'ind2'、'ind3'、'ind4' 、'ind5'、'ind6'])>>> my_seriesind0 12ind1 24ind2 36ind3 48ind4 60ind5 72ind6 84dtype:int64 

また、インデックスによっていくつかの要素を取得したり、グループを割り当てたりするのは非常に簡単です。

>>> my_series [['ind0'、'ind3'、'ind6']] ind0 12ind3 48ind6 84dtype:int64>>> my_series [['ind0'、'ind3'、'ind6']] =36>>> my_seriesind0 36ind1 24ind2 36ind3 36ind4 60ind5 72ind6 36dtype:int64 

フィルタリングと数学演算も簡単です:

>>> my_series [my_series> 24] ind0 36ind2 36ind3 36ind4 60ind5 72ind6 36dtype:int64>>> my_series [my_series <24] * 2Series([]、dtype:int64)>>> my_seriesind0 36ind1 24ind2 36ind3 36ind4 60ind5 72ind6 36dtype:int64>>> 

以下は、シリーズの他の一般的な操作です。

>>>#辞書として機能>>> my_series1 =pd.Series({'a':9、'b':18、'c':27、'd':36})>>> my_series1a 9b 18c 27d 36dtype:int64>>>#ラベル属性>>> my_series1.name='数字'>>>my_series1.index.name='文字'>>>my_series1lettersa 9b 18c 27d 36名前:数字、dtype:int64>>> #chaning Index>>> my_series1.index =['w'、'x'、'y'、'z']>>> my_series1w 9x 18y 27z 36Name:Numbers、dtype:int64>>> 

DataFrame

DataFrameは、行と列が含まれているため、テーブルのように機能します。 DataFrameの各列はSeriesオブジェクトであり、行はSeries内の要素で構成されています。

DataFrameは、組み込みのPythondictを使用して構築できます。

>>> df =pd.DataFrame({'Country':['China'、'India'、'Indonesia'、'Pakistan']、'Population':[1420062022、1368737513、269536482、204596442]、 'エリア':[9388211、2973190、1811570、770880]})>>>dfエリア国人口09388211中国142006202221973190インド136873751321811570インドネシア2695364823770880パキスタン204596442>>>df['国']0中国1インド2インドネシア3パキスタン名前:国、 dtype:object>>> df.columnsIndex(['Area'、'Country'、'Population']、dtype ='object')>>> df.indexRangeIndex(start =0、stop =4、step =1)>>> 

要素へのアクセス

行インデックスを明示的に提供する方法はいくつかあります。

>>> df =pd.DataFrame({'Country':['China'、'India'、'Indonesia'、'Pakistan']、'Population':[1420062022、1368737513、269536482、204596442]、 ' Landarea':[9388211、2973190、1811570、770880]}、index =['CHA'、' IND'、' IDO'、' PAK'])>>> dfCountry Landarea PopulationCHA China 9388211 1420062022IND India 2973190 1368737513IDO Indonesia1811570269536482PAKパキスタン770880 204596442>>> df.index =['CHI'、'IND'、'IDO'、'PAK']>>> df.index.name ='Country Code'>>> dfCountry Landarea PopulationCountry CodeCHI China 9388211 1420062022IND India 29731901368737513IDOインドネシア1811570269536482PAKパキスタン770880204596442>>> df['国']国コードCHI中国INDインドIDOインドネシアPAKパキスタン名前:国、dtype:オブジェクト

インデックスを使用した行アクセスは、いくつかの方法で実行できます

  • .locの使用とインデックスラベルの提供
  • .ilocの使用とインデックス番号の提供
>>> df.loc ['IND'] Country IndiaLandarea 2973190Population 1368737513Name:IND、dtype:object>>> df.iloc [1] Country IndiaLandarea 2973190Population 1368737513Name:IND、dtype:object>>>>>> df .loc [['CHI'、'IND']、'Population']国コードCHI1420062022IND 1368737513名前:Population、dtype:int64 

ファイルの読み取りと書き込み

Pandasは、CSV、XML、HTML、Excel、SQL、JSONなどの多くの一般的なファイル形式をサポートしています。最も一般的にはCSVファイル形式が使用されます。

csvファイルを読み取るには、次を実行します:

>>> df =pd.read_csv('GDP.csv'、sep ='、')

名前付き引数sepは、GDP.csvというCSVファイルの区切り文字を指します。

集約とグループ化

パンダのデータをグループ化するために、.groupbyメソッドを使用できます。タイタニックのデータセットを使用したパンダでの集計とグループ化の使用を示すために、以下のリンクから同じものを見つけることができます:

https://yadi.sk/d/TfhJdE2k3EyALt

>>> titanic_df =pd.read_csv('titanic.csv')>>> print(titanic_df.head())PassengerID Name PClass Age \ 0 1 Allen、Miss Elisabeth Walton 1st 29.001 2 Allison、Miss Helen Loraine1st 2.002 3アリソン、ハドソン氏ジョシュア・クレイトン1st 30.003 4アリソン、ハドソン夫人JC(Bessie Waldo Daniels)1st 25.004 5アリソン、マスターハドソントレバー1st0.92セックスサバイバルSexCode0メス111メス012オス003メス014オス10>>> 

何人の乗客(女性と男性)が生き残ったのか、何人が生き残らなかったのかを計算してみましょう。.groupbyを使用します

>>> print(titanic_df.groupby(['Sex'、'Survived'])['PassengerID']。count())Sex Survivedfemale 0154 1 308male 0709 1142名前:PassengerID、dtype:int64  

キャビンクラスに基づく上記のデータ:

>>> print(titanic_df.groupby(['PClass'、'Survived'])['PassengerID']。count())PClass Survived * 0 11st 0129 1 1932nd 0160 1 1193rd 0 573 1138名前: PassengerID、dtype:int64 

パンダを使用した時系列分析

パンダは時系列データを分析するために作成されました。説明のために、私はアマゾンの5年間の株価を使用しました。以下のリンクからダウンロードできます

https://finance.yahoo.com/quote/AMZN/history?period1=1397413800&period2=1555180200&interval=1mo&filter=history&frequency=1mo

>>>パンダをpdとしてインポート>>>amzn_df=pd.read_csv('AMZN.csv'、index_col ='Date'、parse_dates =True)>>> amzn_df =amzn_df.sort_index()>>> print( amzn_df.info()) DatetimeIndex:62エントリ、2014-04-01から2019-04-12データ列(合計6列):Open 62 non-null objectHigh 62 non- null objectLow 62 non-null objectClose 62 non-null objectAdj Close 62 non-null objectVolume 62 non-null objectdtypes:object(6)memory使用量:1.9+ KBNone 

上記では、DatetimeIndex by Date列を使用してDataFRameを作成し、それを並べ替えています。

そして、平均終値は、

>>> amzn_df.loc ['2015-04'、'Close']。mean()421.779999 

視覚化

matplotlibライブラリを使用してパンダを視覚化できます。アマゾンの株価履歴データセットを取得して、グラフ上で特定の期間の価格変動を調べてみましょう。

>>> import matplotlib.pyplot as plt>>> df =pd.read_csv('AMZN.csv'、index_col ='Date'、parse_dates =True)>>> new_df =df.loc ['2014-06 ':' 2018-08'、[' Close']]>>> new_df =new_df.astype(float)>>> new_df.plot()>>>plt。 show()

Pythonデータの分析と視覚化


  1. Pythonでのデータ分析と視覚化?

    Pythonは、主にnumpy、pandas、matplotlib、seabornなどのデータ分析と視覚化のための多数のライブラリを提供します。このセクションでは、numpyの上に構築されたオープンソースライブラリであるデータ分析と視覚化のためのpandasライブラリについて説明します。 これにより、迅速な分析とデータのクリーニングと準備を行うことができます。Pandasには、以下で説明する多数の組み込みの視覚化機能も用意されています。 インストール パンダをインストールするには、ターミナルで以下のコマンドを実行します- pipinstall pandas Orweにはanacondaが

  2. Pythonでの探索的データ分析

    データ分析の場合、探索的データ分析(EDA)を最初のステップにする必要があります。探索的データ分析は、次のことに役立ちます- データセットへの洞察を与えるため。 基礎となる構造を理解します。 重要なパラメータとそれらの間にある関係を抽出します。 基礎となる仮定をテストします。 サンプルデータセットを使用したEDAの理解 Pythonを使用してEDAを理解するために、任意のWebサイトから直接またはローカルディスクからサンプルデータを取得できます。ワイン品質データセットの赤い変種が公開されているUCIMachineLearning Repositoryからサンプルデ