PFAS全国調査結果に見る課題と、データを紐解くPythonスクリプト
先日、水道水のPFAS(有機フッ素化合物)に関する初の全国大規模調査の結果が発表されました。幸いにも、国の暫定目標値を超えた地点はなかったものの、水道事業の約2割でPFASが検出されたという事実は、今後の対策を考える上で重要な情報となります。
PFASは、撥水性や耐熱性などの特性を持つため、様々な工業製品や日用品に使用されてきました。しかし、その一方で、環境中で分解されにくく、人体への蓄積性も指摘されており、健康への影響が懸念されています。今回の調査結果は、改めてPFAS汚染のリスクを認識させられるものでした。
検出されたとはいえ、目標値を超えた地点がなかったことは、現時点での安全性をある程度示唆していると言えるでしょう。しかし、PFASは微量でも長期的な曝露によって影響が出る可能性があり、継続的なモニタリングと対策が必要です。特に、検出された地域の水道事業者は、汚染源の特定や除去技術の導入などを検討していく必要があるでしょう。
今回の調査結果は、環境省のウェブサイトで公表されており、誰でもアクセスできます。しかし、大量のデータから必要な情報を抽出したり、傾向を分析したりするには、プログラミングの知識があると便利です。そこで、今回のコラムでは、今回のニュースに関連して、Pythonを使ってデータを分析する簡単なスクリプトを紹介します。
このスクリプトは、仮に、水道事業者ごとのPFAS検出量データがCSV形式で提供されていると仮定し、それを読み込んで、検出された事業者の割合と、検出量の平均値を計算するものです。もちろん、実際のデータはまだ公開されていないため、あくまでサンプルコードとなります。
サンプルPythonスクリプト
import pandas as pd
def analyze_pfas_data(csv_file):
"""
CSVファイルからPFASデータを読み込み、検出された事業者の割合と平均検出量を計算します。
"""
try:
df = pd.read_csv(csv_file)
except FileNotFoundError:
print(f"エラー:ファイル '{csv_file}' が見つかりません。")
return
# '検出量'カラムが存在するか確認
if '検出量' not in df.columns:
print("エラー:'検出量' カラムがCSVファイルに存在しません。")
return
# 検出された事業者の数を計算
detected_count = df[df['検出量'] > 0].shape[0]
# 全事業者の数を計算
total_count = df.shape[0]
# 検出された事業者の割合を計算
if total_count > 0:
detected_percentage = (detected_count / total_count) * 100
else:
detected_percentage = 0
# 平均検出量を計算(検出された事業者のみ)
mean_detection = df[df['検出量'] > 0]['検出量'].mean()
print(f"検出された事業者の割合: {detected_percentage:.2f}%")
print(f"検出された事業者の平均検出量: {mean_detection:.2f}")
def main():
"""
メイン関数
"""
# CSVファイルのパスを指定
csv_file = 'pfas_data.csv' # 実際のファイル名に置き換えてください
analyze_pfas_data(csv_file)
if __name__ == "__main__":
main()
スクリプトの使い方
- pandasのインストール:
pip install pandas
を実行して、pandasライブラリをインストールします。 CSVファイルの作成: 以下の形式でデータを含むCSVファイル(例:
pfas_data.csv
)を作成します。事業者名,検出量 A市,0.0 B市,0.05 C市,0.0 D市,0.1 E市,0.02
- スクリプトの実行: Pythonスクリプトを実行します。
- 結果の確認: 検出された事業者の割合と平均検出量が表示されます。
注意点:
- このスクリプトはあくまでサンプルであり、実際のデータに合わせて修正する必要があります。
- データの形式やカラム名が異なる場合は、スクリプトを適切に修正してください。
- より高度な分析を行うには、他のライブラリ(matplotlib、seabornなど)の利用も検討してください。
- このスクリプトは
pfas_data.csv
という名前のファイルが存在することを前提としています。ファイル名を変更した場合は、スクリプト内のcsv_file
変数も変更してください。 - '検出量' カラムに欠損値(NaN)がある場合、
mean()
関数は自動的に欠損値を無視して計算を行います。もし、欠損値を特定の値で埋める必要がある場合は、fillna()
メソッドを使用してください。例:df['検出量'] = df['検出量'].fillna(0)
今回のニュースをきっかけに、PFAS問題への関心が高まり、より効果的な対策が進むことを願っています。そして、データ分析のスキルを活用することで、環境問題の解決に貢献できる可能性も広がっていることを感じていただければ幸いです。
科学ニュース一覧に戻る