Python 無料で独習 【超特訓】Pandas20本ノック 03

Python
この記事は約3分で読めます。

今回の講義はPandasの操作に関する問題を出されて
それを実際にコードを書いて解いていくという内容です。

特定のテーマに沿った課題に取り組みながら
スキルを向上させていきます。
前準備として、問題に出てくるデータは下記URLから
ダウンロードしておく必要があります。
https://drive.google.com/drive/folders/1oKCLH1D_KXVLJFutxtP1dvzgWNYtoqVi

Pandas 20本ノック

問題その6 条件抽出

people.csvを読み込みdf_peopleと定義してください。
その後、下記条件を満たすDataFrameをそれぞれ抽出してください。
・nationalityがAmericaである
・ageが20以上30未満である。

df_people = pd.read_csv('people.csv')
df_people

#条件抽出はメソッドを使用しないやり方とquery()を使用したやり方がある。
df_people[df_people['nationality']=='America']

#query()を使用したやり方
df_people.query('nationality == "America"')

結果はどちらも同じです。


もう一つやり方があって、それがisin()です。

df_people[df_people['nationality'].isin(['America'])]

最後はこの条件です。
・ageが20以上30未満である。

df_people[(df_people['age']>=20) & (df_people['age']<30)]

先ほどと同じqueryをつかうやり方です。

df_people.query('age >= 20 & age <30')

問題その7 ユニークな値の抽出

df_peopleに対して、カラム毎のユニーク(固有)な値を抽出してください。

今回に関しては、私の読解力がないのか
問題の意味がわかりません(笑)

pandas の中にはそのままズバリ、unique()というメソッドが存在し
文字通りユニークな値を抽出してくれるらしいです。
ただし、uniqueはデータフレームには使えません。Seriesのみです。

#カラムを1つずつ指定してunique()を定義する
df_people['nationality'].unique()
array(['Japan', 'America', 'Korea'], dtype=object)

df_people['name'].unique()
array(['Imanishi', 'Mike', 'Suzuki', 'John', 'Kim'], dtype=object)

df_people['age'].unique()
array([26, 21, 35, 16, 28], dtype=int64)

コメント

タイトルとURLをコピーしました