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

Python如何按行打印pandas DataFrame value_counts转字典及说明字符串

解决方案

方法1:使用json.dumps实现格式化输出(最推荐,和目标输出格式完全匹配)

你可以用Python内置的json模块的dumps方法,通过indent参数控制缩进换行,代码如下:

import json

# 打印示例
print('Names and counts')
print(json.dumps(df['names'].value_counts()[:3].to_dict(), indent=1, ensure_ascii=False))
print('\nLast names and counts')
print(json.dumps(df['last names'].value_counts()[:3].to_dict(), indent=1, ensure_ascii=False))
print('\nStaff names and counts')
print(json.dumps(df['staff_names'].value_counts()[:3].to_dict(), indent=1, ensure_ascii=False))
print('\nStaff last names and counts')
print(json.dumps(df['staff last names'].value_counts()[:3].to_dict(), indent=1, ensure_ascii=False))
  • 参数说明:
    • indent=1:控制每个层级的缩进为1个空格,刚好匹配你需要的输出效果
    • ensure_ascii=False:如果后续有中文键值也能正常显示,不会转义成Unicode编码

方法2:正确使用pprint实现换行

你之前用pprint报错大概率是没有正确导入模块,或者没有设置宽度参数,正确用法如下:

from pprint import pprint

print('Names and counts')
# width设为1会强制每行只放一个键值对
pprint(df['names'].value_counts()[:3].to_dict(), width=1)
# 其余字段打印逻辑同理,每个前面加对应的描述打印即可

方法3:手动遍历拼接(适合需要自定义格式的场景)

如果需要完全自定义每行的输出格式,可以手动遍历字典的键值对:

def print_dict(desc, data_dict):
    print(desc)
    print("{")
    total = len(data_dict)
    for idx, (k, v) in enumerate(data_dict.items()):
        end = ",\n" if idx != total -1 else "\n"
        print(f' "{k}": {v}', end=end)
    print("}")

# 调用示例
print_dict('Names and counts', df['names'].value_counts()[:3].to_dict())
print()
print_dict('Last names and counts', df['last names'].value_counts()[:3].to_dict())
# 其余字段同理调用即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 22:36:03