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

如何使用Python Pandas将分组后的DataFrame转换为指定格式字符串

问题:将DataFrame分组统计结果转换为指定格式字符串

现有如下DataFrame:

import pandas as pd

data = [['42.0', 'A'], ['41.0', 'A'], ['43.0', 'B'],['43.0', 'C'], ['41.0', 'B'], ['42.0', 'B']]
df = pd.DataFrame(data, columns=['Number', 'Level'])

已尝试用df.groupby(['Number', 'Level']).size()进行分组统计,但需要将结果转换为以下格式的字符串:

42.0(1A,1B,0C)
41.0(1A,1B,0C)
43.0(0A,1B,1C)

解决方案

可以通过透视表补全所有Level类别,再逐行格式化字符串来实现:

  1. 生成透视表,确保每个Number对应的A、B、C三类都有计数(无数据的补0):
pivot_df = df.pivot_table(
    index='Number',
    columns='Level',
    values='Number',
    aggfunc='count',
    fill_value=0
)
# 固定列顺序为A、B、C,避免类别顺序混乱
pivot_df = pivot_df.reindex(columns=['A', 'B', 'C'])
  1. 遍历透视表的每一行,拼接成目标格式的字符串:
result = []
for number, row in pivot_df.iterrows():
    line = f"{number}({row['A']}A,{row['B']}B,{row['C']}C)"
    result.append(line)

# 输出最终结果
for line in result:
    print(line)

运行后会直接输出符合要求的内容:

42.0(1A,1B,0C)
41.0(1A,1B,0C)
43.0(0A,1B,1C)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 04:10:32