【Python】PandasでSeriesとDataFrameの作成を行う方法を解説!

【Python】PandasでSeriesとDataFrameの作成を行う方法を解説!

この記事では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

[スポンサーリンク]


Pandasカテゴリの最新記事