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

Python pandas字典转CSV后转置索引异常,请求解决方法

问题原因分析

你手动写入CSV的方式导致文件结构不符合pandas的默认解析规则:

  • 生成的CSV每一行是键,值的格式,第一行bedrooms,2.0会被pd.read_csv当作表头行,即bedrooms成为唯一列名,后续所有行都被当作该列的字符串数据(比如bathrooms,3.0是一个单元格内容)。
  • 转置后,bedrooms变成索引名,原第一行的2.0成为唯一数据列,其他行的内容被错误解析,自然在info()中看不到bedrooms作为数据项的存在。
正确解决方案

直接用pandas内置方法处理字典与CSV的转换,避免手动写入的错误:

方法1:将字典转为单行数据保存(最常用)

适合把字典作为一条记录存储,读取后直接得到列名为字典键、值为对应数据的DataFrame:

import pandas as pd

data_new = {'bedrooms': 2.0, 'bathrooms': 3.0, 'sqft_living': 1200,
            'sqft_lot': 5800, 'floors': 2.0,
            'waterfront': 1, 'view': 1, 'condition': 2, 'sqft_above': 1200,
            'sqft_basement': 20,
            'yr_built': 1925, 'yr_renovated': 2003, 'city': "Shoreline"}

# 把字典包装成列表,转为单行DataFrame
df = pd.DataFrame([data_new])
# 保存CSV,不写入索引列
df.to_csv('test.csv', index=False)

# 读取验证
df1 = pd.read_csv('test.csv')
print(df1)
# 查看数据信息,所有字段都会正常显示
df1.info()

方法2:将字典键作为行索引保存

如果需要保留键-值的行式结构,读取后转置也能正常显示所有数据:

import pandas as pd

# 从字典生成以键为索引、值为列的DataFrame
df = pd.DataFrame.from_dict(data_new, orient='index', columns=['value'])
# 保存CSV,保留索引列(即字典的键)
df.to_csv('test.csv')

# 读取时指定第一列为索引
df1 = pd.read_csv('test.csv', index_col=0)
# 转置后得到单行数据,所有字段完整
tdf1 = df1.T
print(tdf1)
tdf1.info()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 11:54:32