根据数据框中的公共列值对行进行计数
许多数据集包含特定列具有相同值的重复行。为了分析这些发生的频率,我们可以采用 DataFrame 分组技术。
考虑一个由“Group”和“Size”列组成的 DataFrame:
Group | Size | Time |
---|---|---|
Short | Small | 2 |
Moderate | Medium | 1 |
Moderate | Small | 1 |
Tall | Large | 1 |
GroupBy 和 Size
pandas 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>
此操作将返回具有以下输出的 Series:
Group Size Moderate Medium 1 Small 1 Short Small 2 Tall Large 1 dtype: int64
重置索引和可选性
要将Series转换为带有计数列的DataFrame,我们可以使用reset_index并为新列指定名称:
<code class="python">dfg = df.groupby(by=["Group", "Size"]).size().reset_index(name="Time")</code>
此外,根据您的具体需求,您可以使用带有 as_index 参数的 groupby 函数的变体:
<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>
以上是如何根据 Pandas DataFrame 中的公共列值计算行数?的详细内容。更多信息请关注PHP中文网其他相关文章!