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

如何将Pandas DataFrame转换为键值对与CSV格式?

嘿,这个问题我太熟了!其实Pandas本身就自带了高效到爆的方法来搞定这两种转换,完全没必要自己手动去迭代字典(当然硬要迭代也能行,但纯属绕远路~),下面给你详细拆解两种格式的最优实现方式:

格式1:转换为键值对格式

Pandas的to_dict()方法直接就能满足需求,而且支持多种键值对结构,分两种常见场景给你举例:

场景1:每行数据转为独立的键值对字典(组成列表)

这是最常用的场景,比如把表格里的每一行转成一个字典,最终得到字典列表。用to_dict('records')即可:

import pandas as pd

# 先创建一个示例DataFrame
data = {
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, 35],
    'City': ['New York', 'London', 'Paris']
}
df = pd.DataFrame(data)

# 转换为每行一个键值对字典的列表
key_value_list = df.to_dict('records')
print(key_value_list)
# 输出:
# [{'Name': 'Alice', 'Age': 25, 'City': 'New York'},
#  {'Name': 'Bob', 'Age': 30, 'City': 'London'},
#  {'Name': 'Charlie', 'Age': 35, 'City': 'Paris'}]

场景2:按列聚合的键值对字典

如果需要把每一列的所有值作为列表,对应列名作为键,用to_dict('list'):

column_based_dict = df.to_dict('list')
print(column_based_dict)
# 输出:
# {'Name': ['Alice', 'Bob', 'Charlie'],
#  'Age': [25, 30, 35],
#  'City': ['New York', 'London', 'Paris']}
格式2:转换为CSV格式

这个更简单,Pandas的to_csv()方法一键搞定,支持保存到文件或者直接生成CSV字符串:

保存为CSV文件

如果要把结果存到本地文件,只需要指定文件名,加上index=False可以去掉默认的行索引(避免多出一列无用数据):

# 保存到本地文件
df.to_csv('output.csv', index=False)

生成CSV格式的字符串

如果不需要保存文件,只想拿到CSV格式的文本内容,直接调用to_csv()并赋值给变量即可:

csv_string = df.to_csv(index=False)
print(csv_string)
# 输出:
# Name,Age,City
# Alice,25,New York
# Bob,30,London
# Charlie,35,Paris

为啥不推荐手动迭代字典?

Pandas的这些to_*方法都是用底层C扩展实现的,比纯Python循环迭代快N倍,尤其是数据量很大的时候,效率差距会非常明显。除非你有特殊的自定义格式需求(比如要修改键名、处理嵌套结构),否则直接用自带方法就是最优解!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:28:38