pandas入門2_「dataframeについて」
pandas入門2_「dataframeについて」
さっと見て、「あぁそうだったそうだった」と確認できるハンドブックのような存在を目指して。
pandas入門第2回目、「dataframeについて」です。
dataframeとは
Dataframeには二次元のデータを収納することができ、行や列にそれぞれ名前が付けることもできます。
今回学ぶこと
今回では、以下の関数を使えるようになることが目標です。
pd.read_clipboard( )(クリップボードを読みこむ) dataframe.columns(列(カラム)の名前を表示する) dataframe['columns'](列(カラム)を引数にして、要素を表示する) DataFrame(dataframe,columns=['index1','index2',])(任意のカラム名で新しいDataFrameを作る) dataframe.head(n)(先頭からn行だけを表示) dataframe.tail(n)(最後からn行だけを表示) dataframe.loc[n](行を引数にして、要素を表示する) dataframe['columns']="columns_name" (列(カラム)全体に値を代入) del dataframe['columns'](列(columns)を消す) dataframe.drop('columns_name',axis=1)(列(columns)を消す)
- dataframeとは
- 今回学ぶこと
- おまじない
- dataframeをつくる
- dataframe.columns(列(カラム)の名前を表示する)
- dataframe['columns'](列(カラム)を引数にして、要素を表示する)
- DataFrame(dataframe,columns=['index1','index2',])(任意のカラム名で新しいDataFrameを作る)
- dataframe.head(n)(先頭からn行だけを表示)
- dataframe.tail(n)(最後からn行だけを表示)
- dataframe.loc[n](行を引数にして、要素を表示する)
- dataframe['columns']="columns_name" (列(カラム)全体に値を代入)
- SeriesをDataFrameに追加する
- del dataframe['columns'](列(columns)を消す)
- 標準python、numpy、pandasのあれこれ
おまじない
import numpy as np from pandas import Series, DataFrame import pandas as pd
dataframeをつくる
#一般的にはこのように作成します #df = DataFrame(要素,columns=['カラム名'],index=['インデックス名']) #今回はNFLのデータからdataframeを作ります #NFLのデータ(http://en.wikipedia.org/wiki/NFL_win-loss_records)の上位Rank5を参考にdataframeをつくる nfl_frame = pd.read_clipboard()#クリップボードから読み込むことが可能です。 nfl_frame >>>
Rank | Team | Won | Lost | Tied | Pct. | First NFL Season | Total Games | Division | |
---|---|---|---|---|---|---|---|---|---|
0 | 1 | Dallas Cowboys | 502 | 374 | 6 | 0.573 | 1960 | 882 | NFC East |
1 | 2 | Green Bay Packers | 737 | 562 | 37 | 0.565 | 1921 | 1,336 | NFC North |
2 | 3 | Chicago Bears | 749 | 579 | 42 | 0.562 | 1920 | 1,370 | NFC North |
3 | 4 | Miami Dolphins | 445 | 351 | 4 | 0.559 | 1966 | 800 | AFC East |
4 | 5 | New England Patriots[b] | 489 | 386 | 9 | 0.558 | 1960 | 884 | AFC East |
dataframe.columns(列(カラム)の名前を表示する)
nfl_frame.columns >>> Index(['Rank', 'Team', 'Won', 'Lost', 'Tied', 'Pct.', 'First NFL Season', 'Total Games', 'Division'], dtype='object')
dataframe['columns'](列(カラム)を引数にして、要素を表示する)
nfl_frame['First NFL Season'] >>> 0 1960 1 1921 2 1920 3 1966 4 1960 Name: First NFL Season, dtype: int64
#この書き方でも同様の操作ができる nfl_frame.Team >>> 0 Dallas Cowboys 1 Green Bay Packers 2 Chicago Bears 3 Miami Dolphins 4 New England Patriots[b] Name: Team, dtype: object
DataFrame(dataframe,columns=['index1','index2',])(任意のカラム名で新しいDataFrameを作る)
DataFrame(nfl_frame,columns=['Team','First NFL Season','Total Games']) >>>
Team | First NFL Season | Total Games | |
---|---|---|---|
0 | Dallas Cowboys | 1960 | 882 |
1 | Green Bay Packers | 1921 | 1,336 |
2 | Chicago Bears | 1920 | 1,370 |
3 | Miami Dolphins | 1966 | 800 |
4 | New England Patriots[b] | 1960 | 884 |
dataframe.head(n)(先頭からn行だけを表示)
nfl_frame.head(3) #ちなみに、引数を与えないと5行になります >>>
Rank | Team | Won | Lost | Tied | Pct. | First NFL Season | Total Games | Division | |
---|---|---|---|---|---|---|---|---|---|
0 | 1 | Dallas Cowboys | 502 | 374 | 6 | 0.573 | 1960 | 882 | NFC East |
1 | 2 | Green Bay Packers | 737 | 562 | 37 | 0.565 | 1921 | 1,336 | NFC North |
2 | 3 | Chicago Bears | 749 | 579 | 42 | 0.562 | 1920 | 1,370 | NFC North |
dataframe.tail(n)(最後からn行だけを表示)
nfl_frame.tail(3)
>>>
Rank | Team | Won | Lost | Tied | Pct. | First NFL Season | Total Games | Division | |
---|---|---|---|---|---|---|---|---|---|
2 | 3 | Chicago Bears | 749 | 579 | 42 | 0.562 | 1920 | 1,370 | NFC North |
3 | 4 | Miami Dolphins | 445 | 351 | 4 | 0.559 | 1966 | 800 | AFC East |
4 | 5 | New England Patriots[b] | 489 | 386 | 9 | 0.558 | 1960 | 884 | AFC East |
dataframe.loc[n](行を引数にして、要素を表示する)
nfl_frame.loc[3] >>> Rank 4 Team Miami Dolphins Won 445 Lost 351 Tied 4 Pct. 0.559 First NFL Season 1966 Total Games 800 Division AFC East Name: 3, dtype: object
dataframe['columns']="columns_name" (列(カラム)全体に値を代入)
nfl_frame['Stadium']="Levi's Stadium" #'Stadium'という列に、"Levi's Stadium"を代入しています nfl_frame >>>
Rank | Team | Won | Lost | Tied | Pct. | First NFL Season | Total Games | Division | Stadium | |
---|---|---|---|---|---|---|---|---|---|---|
0 | 1 | Dallas Cowboys | 502 | 374 | 6 | 0.573 | 1960 | 882 | NFC East | Levi's Stadium |
1 | 2 | Green Bay Packers | 737 | 562 | 37 | 0.565 | 1921 | 1,336 | NFC North | Levi's Stadium |
2 | 3 | Chicago Bears | 749 | 579 | 42 | 0.562 | 1920 | 1,370 | NFC North | Levi's Stadium |
3 | 4 | Miami Dolphins | 445 | 351 | 4 | 0.559 | 1966 | 800 | AFC East | Levi's Stadium |
4 | 5 | New England Patriots[b] | 489 | 386 | 9 | 0.558 | 1960 | 884 | AFC East | Levi's Stadium |
SeriesをDataFrameに追加する
#まずは、Seriesをつくる stadiums = Series(["Levi's Stadium","AT&T Stadium"],index=[4,0]) stadiums >>> 4 Levi's Stadium 0 AT&T Stadium dtype: object
Dataframeに追加する
nfl_frame['Stadium']=stadiums
nfl_frame
>>>
Rank | Team | Won | Lost | Tied | Pct. | First NFL Season | Total Games | Division | Stadium | |
---|---|---|---|---|---|---|---|---|---|---|
0 | 1 | Dallas Cowboys | 502 | 374 | 6 | 0.573 | 1960 | 882 | NFC East | AT&T Stadium |
1 | 2 | Green Bay Packers | 737 | 562 | 37 | 0.565 | 1921 | 1,336 | NFC North | NaN |
2 | 3 | Chicago Bears | 749 | 579 | 42 | 0.562 | 1920 | 1,370 | NFC North | NaN |
3 | 4 | Miami Dolphins | 445 | 351 | 4 | 0.559 | 1966 | 800 | AFC East | NaN |
4 | 5 | New England Patriots[b] | 489 | 386 | 9 | 0.558 | 1960 | 884 | AFC East | Levi's Stadium |
del dataframe['columns'](列(columns)を消す)
del nfl_frame['Stadium'] nfl_frame >>> #Stadium列がなくなったことがわかります
Rank | Team | Won | Lost | Tied | Pct. | First NFL Season | Total Games | Division | |
---|---|---|---|---|---|---|---|---|---|
0 | 1 | Dallas Cowboys | 502 | 374 | 6 | 0.573 | 1960 | 882 | NFC East |
1 | 2 | Green Bay Packers | 737 | 562 | 37 | 0.565 | 1921 | 1,336 | NFC North |
2 | 3 | Chicago Bears | 749 | 579 | 42 | 0.562 | 1920 | 1,370 | NFC North |
3 | 4 | Miami Dolphins | 445 | 351 | 4 | 0.559 | 1966 | 800 | AFC East |
4 | 5 | New England Patriots[b] | 489 | 386 | 9 | 0.558 | 1960 | 884 | AFC East |
dataframe.drop('columns_name',axis=1)(列(columns)を消す)
#また、nfl_frame.drop('Stadium',axis=1)でも同じ操作ができます #axis=1は列(columns)を表します #行の場合は、nfl_frame.drop(n)でも消すことができます #nはindex番号
標準python、numpy、pandasのあれこれ
さて、pythonにはlist、array、series、detaframeなど様々な配列があり、実際のデータ解析では、それらを行ったり来たりしたいことが多々あると思います。
そんな時に、以下のページが参考になりますので、記載しておきます。 https://qiita.com/richi40/items/6b3af6f4b00d62dbe8e1
また、DataFrameの機能の全体は、以下のリンクからWebで確認できます。 http://pandas.pydata.org/pandas-docs/dev/generated/pandas.DataFrame.html
少し長くなってしまいましたが、今回は以上です。
お疲れ様でした!
次回は、こちら。
それじゃー、また。