Excelデータの指定範囲内の間隔の最大値をPythonが自動計算します

この記事では、 Python言語  に基づいて、 Excelテーブル ファイルの特定の列のデータに基づいて、指定された行数ごとの範囲内でこの列のデータの間隔の最大値を計算する方法を紹介します (例4:各行の範囲内)。

.csvデータの列を持つ形式のExcelテーブル ファイル  があることがわかっており、この列のデータ部分(つまり、部分) から開始して間隔の最大値を計算したいと考えています。列名は含まれません)、から行間の最大値、行から行までの最大値行から行までの最大値など、各行の最大値をそれぞれ計算します。この列のデータ数が均等に分割できない場合は、最後にいくつ残るか、これらのいくつかの最大値を見つけるだけです。145891244

  要件が明確になったら、コードを書き始めます。詳細は次のとおりです。

# -*- coding: utf-8 -*-
"""
Created on Wed Jul 26 12:24:58 2023

@author: fkxxgis
"""

import pandas as pd

def calculate_max_every_eight_rows(excel_file, column_name):
    df = pd.read_csv(excel_file)
    column_data = df[column_name]
    max_values = []
    for i in range(0, len(column_data), 4):
        max_values.append(column_data[i:i+4].max())
    return max_values

excel_file = r"C:\Users\15922\Desktop\data_table_1.csv"
column_name = 'NDVI'
result = calculate_max_every_eight_rows(excel_file, column_name)
rdf = pd.DataFrame(result, columns = ["Max"])
output_file = r"C:\Users\15922\Desktop\data.csv"
rdf.to_csv(output_file, index = False)

ここでは、入力ファイルのパスと対応する最大値の 2 つのパラメーターを受け入れる  関数を定義しますcalculate_max_every_eight_rows(最初は8データの最大間隔値を計算したかったため、すべての関数名は です。誰もが理解できます)。計算する間隔の値 列の列名eightexcel_filecolumn_name

  この関数では、まずファイルを読み取り、データをファイルに保存します。次に、ファイルから指定された列のデータをdf取得し、各グループの最大値を保存する空のリストを作成します。次に、関数を使用して、各行ごとにグループ化するために、ステップ サイズ の先頭から始まるインデックス シーケンスを生成します。ここで、実際のニーズに応じて変更できます。各グループ内で、対応するデータ行を取得し、グループ内の最大値を計算し、その最大値をリストに追加します。最後に、この関数は各グループの最大値を保持するリストを返しますcolumn_namemax_valuesrange044column_data4max_valuesmax_values

  次に、excel_file入力ファイルのパスとcolumn_name処理する列名を指定することで、calculate_max_every_eight_rows関数を呼び出し、返された結果をresult変数に保存できます。結果は、各グループの最大値を含むリストになります。

  その後、最大値の結果を保存するために、resultリストを新しいDataFrame形式のデータに変換することを選択しrdf、列名を指定しましたMaxrdf.to_csv()最後に、これを:rdf新しい形式のファイルとして保存し.csvindex=Falseインデックス列を保存しないように設定します。

  上記のコードを実行すると、結果ファイルを取得できます。次の図に示すように、比較しやすいように、結果ファイルを元のファイルにコピーして表示します。1結果列の数値は元の列の前の行の最大値、4結果列の3数値は元の列912行の最大値などであることがわかります。

  この時点で、作業は完了です。

フォロー歓迎: Crazy Learning GIS

おすすめ

転載: blog.csdn.net/zhebushibiaoshifu/article/details/131996263