Python Pandas 様々な条件でデータを抽出する

以下のデータがあった場合に、様々な方法で出たを抽出する方法を記述

画像1

#!/usr/bin/env python
# coding: utf-8

# In[ ]:


import pandas as pd


# In[2]:

 #max_columnsで列数の制限を行う 
pd.set_option('display.max_columns',None)
 #max_rowsで行数の制限を行う 
pd.set_option('display.max_rows',5)


# In[40]:

 #shift -jisにてCSVファイルを読み込む
df = pd.read_csv('data.csv',encoding='shift-jis')
 #データの1行目から5行目までを取得する 
df[:5]


# In[14]:

 #indexは0から始まる 。そのため、indexに1を代入して、1からスタートする
df.index = df.index + 1
df


# In[17]:

 #1行目から3行目を取得 
df[0:3]


# In[18]:

 #1行目は省略可能
df[:3]


# In[46]:

 #9行名から14行目を取得 
df[9:14]


# In[47]:

 #100行目から105行目を取得 
df[100:105]


# In[48]:

 #Seriesとして 「人口(総数)」列を取得
df['人口(総数)'][:5]


# In[49]:

 #DataFrameとして 「都道府県名、人口(総数)、」を取得する。[[]]で囲う
df[['都道府県名','人口(総数)']][:5]


# In[50]:

 #真偽値を使ったデータ抽出 。この真偽値でデータを取得できる
df['西暦(年)'] == 2015


# In[51]:

 #西暦が2015とマッチする行を取得する
df[df['西暦(年)']==2015]


# In[57]:

 #都道府県が東京のデータを取得 
df[df['都道府県名'] == '東京都']


# In[58]:

 #西暦が10の倍数のデータを取得 (Series)。一致する行はTrue、一致しない場合はFalse
df['西暦(年)'] % 10 == 0


# In[60]:

 #西暦が10の倍数のデータを取得 (DataFrame)
df[df['西暦(年)'] % 10 == 0]


# In[66]:

 #西暦が10の倍数ではないデータを抽出#Not演算子の 「~」を前に入れる
df[~(df['西暦(年)'] % 10 == 0)]
 #以下でも同様の結果を取得できる 
df[df['西暦(年)'] % 10 != 0]


# In[72]:

 #And条件で  2015年で かつ 東京都のデータを抽出する
df[(df['西暦(年)(年)']==2015) & (df['都道府県名']=='東京都')]


# In[73]:

 #Or条件で  西暦が2010年 または 2015年のデータを抽出する
df[(df['西暦(年)']== 2010) | (df['西暦(年)']== 2015)]


# In[ ]:

この記事が気に入ったらサポートをしてみませんか?