この記事では、 Python言語 に基づいて、 Excelテーブル ファイルの特定の列のデータに基づいて、指定された行数ごとの範囲内でこの列のデータの間隔の最大値を計算する方法を紹介します (例4
:各行の範囲内)。
.csv
データの列を持つ形式のExcelテーブル ファイル があることがわかっており、この列のデータ部分(つまり、部分) から開始して間隔の最大値を計算したいと考えています。列名は含まれません)、行から行間の最大値、行から行までの最大値、行から行までの最大値など、各行の最大値をそれぞれ計算します。この列のデータ数が均等に分割できない場合は、最後にいくつ残るか、これらのいくつかの最大値を見つけるだけです。1
4
5
8
9
12
4
4
要件が明確になったら、コードを書き始めます。詳細は次のとおりです。
# -*- 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
データの最大間隔値を計算したかったため、すべての関数名は です。誰もが理解できます)。計算する間隔の値 列の列名。eight
excel_file
column_name
この関数では、まずファイルを読み取り、データをファイルに保存します。次に、ファイルから指定された列のデータをdf
取得し、各グループの最大値を保存する空のリストを作成します。次に、関数を使用して、各行ごとにグループ化するために、ステップ サイズ の先頭から始まるインデックス シーケンスを生成します。ここで、実際のニーズに応じて変更できます。各グループ内で、対応するデータ行を取得し、グループ内の最大値を計算し、その最大値をリストに追加します。最後に、この関数は各グループの最大値を保持するリストを返します。column_name
max_values
range
0
4
4
column_data
4
max_values
max_values
次に、excel_file
入力ファイルのパスとcolumn_name
処理する列名を指定することで、calculate_max_every_eight_rows
関数を呼び出し、返された結果をresult
変数に保存できます。結果は、各グループの最大値を含むリストになります。
その後、最大値の結果を保存するために、result
リストを新しいDataFrame形式のデータに変換することを選択しrdf
、列名を指定しましたMax
。rdf.to_csv()
最後に、これを:でrdf
新しい形式のファイルとして保存し.csv
、index=False
インデックス列を保存しないように設定します。
上記のコードを実行すると、結果ファイルを取得できます。次の図に示すように、比較しやすいように、結果ファイルを元のファイルにコピーして表示します。1
結果列の数値は元の列の前の行の最大値、4
結果列の3
数値は元の列9
の12
行の最大値などであることがわかります。
この時点で、作業は完了です。
フォロー歓迎: Crazy Learning GIS