パンダの groupby() と diff()
Pandas ライブラリは、数値に加えてテキスト データを処理するための完全なツールです。 多くのデータ分析アプリケーションと機械学習の探索/前処理からテキスト入力を除外するか、そこから情報を抽出する必要があります。
これを行うには、Pandas が提供するさまざまな組み込み手法を使用して、DataFrame のテキスト列を追加、削除、および変更できます。 この記事では、データをグループ化し、グループ化された値の違いを見つける方法について簡単に説明します。
Python でのデータのグループ化
データ分析では、1つ以上の列でレコードをグループ化することが頻繁に必要になります。 このようなシナリオの例は次のとおりです。
- 各事業部門の従業員数を数えます。
・各部門の男女の平均給与を把握。 - さまざまな年齢の従業員の平均給与を計算します。
Pandas は、ほとんどのグループ化作業を簡単に処理できるようにする groupby()
関数を提供します。 ただし、そのポジションが完了するために支援が必要な仕事がいくつかあります。 他の方法を提供しようとしましょう。
最も重要な Pandas 関数の 1つは groupby()
です。 この方法では、分割を使用してレコードがグループ化および要約され、結合戦略が使用されます。
Pandas で diff()
とともに groupby()
を使用する
以下の例では、さまざまな生徒の ID_Number
、Stu_Names
、および Marks
を含むデータフレームを作成しました。 その後、ID_Number
でグループ化された、連続する日付間のマークの差を含む Marks_diff
という新しい列を作成しました。
ここで fillna(0)
を使用したのは、グループ変数の値が DataFrame 内の隣接する行間で変更されると、fillna(0)
が Pandas にゼロを挿入するように指示するためです。
出力に示されているように、Harry と Petter の点数の差は 6.0、Daniel と Ron の点数の差は 10 です。
コード例:
import pandas as pd
d1 = pd.DataFrame(
{
"ID_Number": ["ID1", "ID1", "ID2", "ID2"],
"Stu_Names": ["Harry", "Petter", "Daniel", "Ron"],
"Marks": [72, 78, 80, 90],
}
)
print(d1)
d1 = d1.sort_values(by=["ID_Number"])
d1["Marks_diff"] = d1.groupby(["ID_Number"])["Marks"].diff().fillna(0)
print(d1)
出力:
ID_Number Stu_Names Marks
0 ID1 Harry 72
1 ID1 Petter 78
2 ID2 Daniel 80
3 ID2 Ron 90
ID_Number Stu_Names Marks Marks_diff
0 ID1 Harry 72 0.0
1 ID1 Petter 78 6.0
2 ID2 Daniel 80 0.0
3 ID2 Ron 90 10.0
I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.
LinkedIn