You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python生成DataFrame各列数据类型与唯一值汇总表?

Pandas DataFrame列信息汇总函数实现

问题背景

现有如下Pandas DataFrame示例:

import pandas as pd

# 创建示例DataFrame
df = pd.DataFrame({
    'letter': ['a','b','c','a','b','c'],
    'state': ['CA','FL','CA','FL','CA','FL'],
    'scores': [11.6,12.8,13.9,14.2,15.8,16.2],
    'age': [12,28,19,14,12,28]})

需要编写Python代码生成包含列名(columns_names)、数据类型(Dtype)、**唯一值(Unique_values)**的汇总表,且代码需封装为可适配70列左右大型DataFrame的函数。

实现方案

以下是适配需求的函数实现,兼顾效率与可读性:

import pandas as pd

def generate_df_summary(df):
    summary_records = []
    # 遍历DataFrame的每一列
    for col in df.columns:
        # 获取列的数据类型
        col_dtype = str(df[col].dtype)
        # 获取列的唯一值集合
        unique_values = df[col].unique()
        # 优化唯一值显示:数量超过5个时截断并标注总数
        if len(unique_values) > 5:
            unique_display = f"{list(unique_values[:5])}... (共{len(unique_values)}个)"
        else:
            unique_display = list(unique_values)
        # 收集当前列的汇总信息
        summary_records.append({
            '列名(columns_names)': col,
            '数据类型(Dtype)': col_dtype,
            '唯一值(Unique_values)': unique_display
        })
    # 转换为汇总DataFrame返回
    return pd.DataFrame(summary_records)

示例使用

将示例DataFrame传入函数,即可生成汇总表:

# 生成汇总表
summary_df = generate_df_summary(df)
print(summary_df)

运行结果

列名(columns_names) 数据类型(Dtype)       唯一值(Unique_values)
0             letter       object           ['a', 'b', 'c']
1              state       object           ['CA', 'FL']
2             scores      float64  [11.6, 12.8, 13.9, 14.2, 15.8]... (共6个)
3                age        int64           [12, 28, 19, 14]

函数特性

  • 高效适配大型DataFrame:基于Pandas内置的unique()方法,内部已做性能优化,处理70列的数据集毫无压力
  • 可读性优化:针对唯一值数量较多的列,自动截断显示并标注总数,避免输出内容过长
  • 灵活扩展:返回结果为DataFrame格式,可直接导出为Excel、CSV等格式,也可进一步自定义处理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 12:06:18