首頁  >  文章  >  後端開發  >  如何根據 Pandas DataFrame 中的公共列值計算行數?

如何根據 Pandas DataFrame 中的公共列值計算行數?

DDD
DDD原創
2024-10-26 08:01:02522瀏覽

How to Count Rows Based on Common Column Values in a Pandas DataFrame?

根據資料框中的公共列值對行進行計數

許多資料集包含特定列具有相同值的重複行。為了分析這些發生的頻率,我們可以採用 DataFrame 分組技巧。

考慮一個由「Group」和「Size」欄位組成的DataFrame:

Group Size Time
Short Small 2
Moderate Medium 1
Moderate Small 1
Tall Large 1

GroupBy 和Size

GroupBy 和Size

<code class="python">import pandas as pd

# Load the sample data
data = {'Group': ['Short', 'Short', 'Moderate', 'Moderate', 'Tall'], 'Size': ['Small', 'Small', 'Medium', 'Small', 'Large']}
df = pd.DataFrame(data)

# Group by "Group" and "Size" columns
dfg = df.groupby(by=["Group", "Size"]).size()</code>

pandas groupby 函數允許我們根據指定的列對行進行分組。 size 函數提供了一個方便的方法來計算每個組內的行數。

Group     Size
Moderate  Medium    1
          Small     1
Short     Small     2
Tall      Large     1
dtype: int64

此操作將傳回具有下列輸出的Series:

重設索引與選擇性

<code class="python">dfg = df.groupby(by=["Group", "Size"]).size().reset_index(name="Time")</code>

要將Series轉換為帶有計數列的DataFrame,我們可以使用reset_index並為新列指定名稱:

<code class="python"># Option 1: Explicitly set index to True
dfg = df.groupby(by=["Group", "Size"], as_index=True).size()

# Option 2: Leave index unchanged (default)
dfg = df.groupby(by=["Group", "Size"]).size()

# Option 3: Explicitly set index to False
dfg = df.groupby(by=["Group", "Size"], as_index=False).size()</code>
此外,根據您的特定需求,您可以使用帶有as_index 參數的groupby 函數的變體:

以上是如何根據 Pandas DataFrame 中的公共列值計算行數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn