CSVファイルはデータの保管や分析に広く使用されていますが、特定の条件に合ったデータのみを読み込むケースも多々あります。Pythonのpandasライブラリはこのようなフィルタリングの処理を簡単かつ効率的に行うことができます。この記事では、pandasを用いてCSVファイルからデータをフィルタリングして読み込む方法を解説します。具体的なコード例とその詳細解説、さらには応用例までを包括的に扱います。
目次
基本的なフィルタリングの方法
pandasでCSVファイルからデータを読み込む基本的なフィルタリング方法は、`read_csv`関数に特定の引数を渡すことです。
例1: 行をフィルタリングする
import pandas as pd
# 行をフィルタリングしてCSVファイルを読み込む
# 例として、行番号が偶数の行のみを読み込む
df = pd.read_csv('data.csv', skiprows=lambda x: x % 2 != 0)
print(df)
このコードでは、`skiprows`引数にラムダ関数を渡しています。この関数がTrueを返す行は読み込み時にスキップされます。具体的には、行番号が奇数(0番目、2番目、4番目…)の行のみが読み込まれます。
例2: 列をフィルタリングする
import pandas as pd
# 列をフィルタリングしてCSVファイルを読み込む
# 例として、'Name' と 'Age' 列のみを読み込む
df = pd.read_csv('data.csv', usecols=['Name', 'Age'])
print(df)
`usecols`引数に列名のリストを渡すことで、指定した列のみを読み込むことができます。
応用例
応用例1: 条件に基づいてデータをフィルタリング
CSVファイルからデータを読み込んだ後、特定の条件に基づいてデータをフィルタリングすることも可能です。
import pandas as pd
# CSVファイルを読み込む
df = pd.read_csv('data.csv')
# 'Age'が30以上のデータのみをフィルタリング
df_filtered = df[df['Age'] >= 30]
print(df_filtered)
この例では、年齢(’Age’列)が30以上のデータのみをフィルタリングしています。
応用例2: 複数の条件でフィルタリング
複数の条件を組み合わせてデータをフィルタリングすることもできます。
import pandas as pd
# CSVファイルを読み込む
df = pd.read_csv('data.csv')
# 'Age'が30以上で、'Gender'が'Male'のデータをフィルタリング
df_filtered = df[(df['Age'] >= 30) & (df['Gender'] == 'Male')]
print(df_filtered)
応用例3: 特定の文字列が含まれているデータをフィルタリング
文字列のフィルタリングには`str.contains`メソッドが便利です。
import pandas as pd
# CSVファイルを読み込む
df = pd.read_csv('data.csv')
# 'Name'列に'John'という文字列が含まれているデータをフィルタリング
df_filtered = df[df['Name'].str.contains('John', na=False)]
print(df_filtered)
まとめ
pandasライブラリは、CSVファイルからデータを効率よくフィルタリングして読み込むための多くの方法を提供しています。`read_csv`関数の引数を活用したり、DataFrameの機能を使って後処理を行ったりと、用途に応じて柔軟なデータ操作が可能です。これを機に、データ分析やデータ整理においてpandasの力を存分に活用してみてください。
コメント