You need to enable JavaScript to run this app. 如何从多个DataFrame中获取行数最大的DataFrame
优惠活动
大模型
产品
解决方案
定价
更多

如何从多个DataFrame中获取行数最大的DataFrame

查找多个DataFrame中行数最大对象的实现方法

核心逻辑为比较所有输入DataFrame的行数,返回行数最大的对象即可,pandas中可以直接用len(df)获取DataFrame的行数,实现代码如下:

基础实现(返回第一个行数最大的DataFrame)

import pandas as pd

def get_max_row_df(*dfs):
    # 无输入时报错
    if not dfs:
        raise ValueError("请至少传入一个DataFrame")
    # 按行数取最大值,存在多个相同最大行数时返回第一个出现的
    return max(dfs, key=lambda df: len(df))

测试示例

用你给出的三个DataFrame测试效果:

# 构造测试数据
df1 = pd.DataFrame({
    "id": [1,2], "A": [2,3], "B": [2,3], "C": [2,3]
})
df2 = pd.DataFrame({
    "id": [1,2,3,4], "A": [5,6,8,0], "B": [5,6,8,0], "C": [5,6,8,0]
})
df3 = pd.DataFrame({
    "id": [1], "A": [6], "B": [6], "C": [6]
})

# 调用函数获取结果
max_df = get_max_row_df(df1, df2, df3)
print(max_df)

输出结果就是行数最大的df2,符合需求。

进阶实现(返回所有行数最大的DataFrame)

如果存在多个行数相同的最大值DataFrame,需要全部返回的话可以用以下版本:

def get_all_max_row_dfs(*dfs):
    if not dfs:
        raise ValueError("请至少传入一个DataFrame")
    # 先计算最大行数
    max_row_count = max(len(df) for df in dfs)
    # 筛选出所有行数等于最大值的DataFrame
    return [df for df in dfs if len(df) == max_row_count], max_row_count

调用后会返回两个结果:所有符合条件的DataFrame组成的列表、最大行数值。

内容的提问来源于stack exchange,提问作者user16017809

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 14:33:03