この記事ではPandasのSeriesとDataFrameの主な作成法を紹介しています。
記事目標
・SeriesとDataFrameの違いを理解
・SeriesDataFrameにおいて直接入力、リスト、辞書型から作成
DataFrameとSeries型の違いがわからない人はまず以下の記事で理解しましょう!!
「DataFrameとSeriesの違いを紹介」
その他Pythonの記事は以下にまとめています!!
「Python記事まとめ」
Pandasデータ構造の違い
PandasにはSeriesとDataFrame、そしてPanelという3種類の構造があります。
それぞれの構造の違いを簡単に表すとこんな感じです。
Series | 1次元構造 |
DataFrame | 2次元構造 |
Panel | 3次元構造 |
今回はこの中でよく使われるSeriesとDataFrameについて作成方法を紹介したいと思います。
Series
1次元のSeriesを作る方法は主に直接入力、リスト、辞書型の3種類です!
直接入力して作る
Series作成時に一緒に値やindexを入力するパターンです。
Series作成時の引数は以下の形
要素はValue、indexでそれぞれ省略可能です。
df=pd.Series([Value],Index=[ ])
index指定しない場合は自動でindexが割り振られます。
import pandas as pd
df_s=pd.Series([10,5,15,20])
#print表示
#0 10
#1 5
#2 15
#3 20
#dtype: int64
index指定すると任意の数字や文字に置き換えることができます。
import pandas as pd
df_s=pd.Series([10,5,15,20],index=["1月","2月","3月","4月"])
#print表示
#1月 10
#2月 5
#3月 15
#4月 20
#dtype: int64
Valueを指定しないと欠損値を表すNaNで穴埋めされます。
import pandas as pd
#valueなしのSeries作成
df_s=pd.Series(index=["1月","2月","3月","4月"])
#print表示
#1月 NaN
#2月 NaN
#3月 NaN
#4月 NaN
#dtype: float64
[スポンサーリンク]
リストから作る
事前に作成したリストを用いてSeriesを作成することもできます。
import pandas as pd
#リスト作成
v_list=[10,5,15,20]
i_list=["1月","2月","3月","4月"]
#Series作成
df_s=pd.Series(v_list,i_list)
#print表示
#1月 10
#2月 5
#3月 15
#4月 20
#dtype: int64
辞書型から作る
事前に辞書型を作ってSeriesを作成することもできます。
keyがindexになります。
import pandas as pd
#辞書型作成
dic={"1月":10,"2月":5,"3月":15,"4月":20}
#Seies作成
df_s=pd.Series(dic)
#print表示
#1月 10
#2月 5
#3月 15
#4月 20
#dtype: int64
DataFrame
2次元のDataFrameを作成する方法は主に直接入力、リスト、辞書型、文書の4種類です!
直接入力して作る
DataFrame作成時に一緒に値やindex、Columnsを入力するパターンです。
DataFrame作成時の引数は以下の形
要素はValue、index、Columnsでそれぞれ省略可能です。
df=pd.DataFrame([Value],index=[ ],columns=[ ])
indexやcolumnsを指定しないで作成すると自動で値が割り振られます。
import pandas as pd
df_d=pd.DataFrame([[10,5,15,20],[40,45,50,55]])
#print表示
# 0 1 2 3
#0 10 5 15 20
#1 40 45 50 55
indexやcolumnsを指定すると任意の文字や数値に置き換えることができます。
import pandas as pd
df_d=pd.DataFrame([[10,5,15,20],[40,45,50,55]],index=["温度","湿度"],columns=["1月","2月","3月","4月"])
#print表示
# 1月 2月 3月 4月
#温度 10 5 15 20
#湿度 40 45 50 55
ちなみにValueを指定しないと欠損値を表すNaNで穴埋めされます。
import pandas as pd
#Value無しのDataFrame作成
df_d=pd.DataFrame(index=["温度","湿度"],columns=["1月","2月","3月","4月"])
#print表示
# 1月 2月 3月 4月
#温度 NaN NaN NaN NaN
#湿度 NaN NaN NaN NaN
リストから作る
value、index、columnを事前に用意したリストから作成もできます。
import pandas as pd
#各リスト
v_list=[[10,5,15,20],[40,45,50,55]]
i_list=["温度","湿度"]
c_list=["1月","2月","3月","4月"]
#DataFrame作成
df_d=pd.DataFrame(v_list,index=i_list,columns=c_list)
#print表示
# 1月 2月 3月 4月
#温度 10 5 15 20
#湿度 40 45 50 55
2次元配列のリストでDataFrameを作成するとValueが行に展開されてしまいます。
列に展開する場合は事前に空(index,column,value無し)かindexやColumnのみを指定したDataFrameを作成し、そのDataFrameに1リストずつ代入しましょう。
import pandas as pd
#各リスト
v_list1=[10,5,15,20]
v_list2=[40,45,50,55]
c_list=["温度","湿度"]
i_list=["1月","2月","3月","4月"]
#Valueが空のDataFrame作成(indexやcolumnが無くてもOK)
df_d=pd.DataFrame(index=i_list,columns=c_list)
#print表示
# 温度 湿度
#1月 NaN NaN
#2月 NaN NaN
#3月 NaN NaN
#4月 NaN NaN
#DataFrameの列を指定して列にリストを代入する
df_d["温度"]=v_list1
df_d["湿度"]=v_list2
#print表示
# 温度 湿度
#1月 10 40
#2月 5 45
#3月 15 50
#4月 20 55
辞書型から作る
事前に辞書型を作ってDataFrameを作成する方法です。
keyはcolumnになります。
import pandas as pd
#辞書型作成
dic={"1月":[10,40],"2月":[5,45],"3月":[15,50],"4月":[20,55]}
#DataFrame作成
df_d=pd.DataFrame(dic)
#print表示
# 1月 2月 3月 4月
#0 10 5 15 20
#1 40 45 50 55
文書から作る
おそらく最も使うであろう文書からDataFrameを作成する方法です。
to_csvメソッドを使用してメモ帳だったりCSVファイルからDataFrameを作成します。
import pandas as pd
#DataFrame作成
df_d=pd.to_csv("./desktop/test.csv")
#print表示
# 月 気温 湿度
#0 1 10 40
#1 2 5 45
#2 3 15 50
#3 4 20 55
[スポンサーリンク]
コメント
[…] ・[最重要!!!]DataFrameとSeriesの違い ・DataFrameとSeriesの作成方法 ・DataFrameの行、列の削除と追加方法 ・DataFrameの行、列、セルの参照方法 […]