Pythonを一から勉強してデータ分析できるようになる

~ Pythonとデータ分析のお勉強の記録 ~

dfの確認:条件を付けてデータを選択する

[Take1] 数値の大小関係で絞り込む

 

【書式】

df[df["対象列名"] >= 50]

 

【コード】

import pandas as pd
 
# テストデータの読み込み
df = pd.read_csv("/content/drive/MyDrive/Python_2024/004/test5.csv",encoding="shift_jis",index_col='名前')
 
# 数学が90点以上を取り出す
df2=df[df["数学"]>=90]
 
# データを表示
print(df2)

 

【結果】

数学 理科 国語
名前
一郎 94 80.0 100
二郎 90 80.0 85
三郎 95 80.0 90
四郎 90 70.0 95
<class 'pandas.core.frame.DataFrame'>

 

 

[Take2] 複数条件で絞り込む

 

【書式】

検索条件を () で囲み、次の演算子で繋げる

 

【コード】

import pandas as pd
 
# テストデータの読み込み
df = pd.read_csv("/content/drive/MyDrive/Python_2024/004/test5.csv",encoding="shift_jis",index_col='名前')
 
# 数学が90点以上かつ、国語が90点以上のデータを取り出す
df2=df[(df["数学"]>=90) & (df["国語"]>=90)]
 
# データを表示
print(df2)

 

【結果】

数学 理科 国語
名前
一郎 94 80.0 100
三郎 95 80.0 90
四郎 90 70.0 95

 

 

[Take3] 文字列で絞り込む

 

【書式】

df[df["列名"].str.contains("検索文字列")]

 

【コード】

import pandas as pd
 
# テストデータの読み込み
df = pd.read_csv("/content/drive/MyDrive/Python_2024/004/test5.csv",encoding="shift_jis")
 
# 名前に「七」が入っているデータを抽出する
df2=df[df["名前"].str.contains("七")]
 
# データを表示
print(df2)

 

【結果】

名前 数学 理科 国語
6 七郎 75 70.0 75

 

 

[Take4] 条件の否定を使って絞り込む

 

【書式】

「~」を使うと、条件の否定になるらしい

 

【コード】

import pandas as pd
 
# テストデータの読み込み
df = pd.read_csv("/content/drive/MyDrive/Python_2024/004/test5.csv",encoding="shift_jis")
 
# 名前に「七」が入っていないデータを抽出する
df2=df[~df["名前"].str.contains("七")]
 
# データを表示
print(df2)

 

【結果】

名前 数学 理科 国語
0 一郎 94 80.0 100
1 二郎 90 80.0 85
2 三郎 95 80.0 90
3 四郎 90 70.0 95
4 五郎 85 70.0 80
5 六郎 80 NaN 80
7 八郎 70 60.0 65
8 九郎 60 60.0 65
9 十郎 60 60.0 60

 

 

[Take5] 条件に合致する行数を調べる

 

【書式】

df.shape[0] を使う

 

【コード】

import pandas as pd
 
# テストデータの読み込み
df = pd.read_csv("/content/drive/MyDrive/Python_2024/004/test5.csv",encoding="shift_jis")
 
# 名前に「七」が入っていないデータを行数を調べる
df2=df[~df["名前"].str.contains("七")].shape[0]
 
# データを表示
print(df2)
 
# データ型を表示
print(type(df2))

 

【結果】

9
<class 'int'>

 

戻り値はdfではなく、intになることに注意する(当たり前か・・・)