Python Pandas 様々な条件でデータを抽出する
以下のデータがあった場合に、様々な方法で出たを抽出する方法を記述
#!/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[ ]:
この記事が気に入ったらサポートをしてみませんか?