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

如何将各键对应值长度不一致的字典写入CSV文件

解决方案

方法1:使用pandas.Series自动对齐(最简方案)

pandas的Series构造时会自动根据最大长度补NaN,不需要手动计算长度,直接按如下代码实现:

import pandas as pd

# 你的原始字典
raw_dict = {
    'TimeStamp': [' 5571300\r\n', ' 6074300\r\n', ' 6581300\r\n', ' 7084300\r\n'], 
    'PRESS': [' 1020.44\r\n', ' 1020.42\r\n', ' 1020.48\r\n', ' 1020.46\r\n'], 
    'GYR_X': [' -70', ' 70', ' 0', ' 0'],
    'GYR_Y': [' 630', ' 630', ' 630', ' 630'], 
    'GYR_Z': [' 210\r\n', ' 210\r\n', ' 210\r\n', ' 210\r\n'], 
    'MAG_X': [' -456', ' -450', ' -471', ' -457'], 
    'MAG_Y': [' -300', ' -307', ' -294', ' -295'], 
    'MAG_Z': [' 84\r\n', ' 84\r\n', ' 75\r\n', ' 75\r\n'], 
    'TEMP': [' +24.30\r\n', ' +24.30\r\n'], 
    'HUM': [' 71.78\r\n', ' 71.73\r\n']
}

# 每个值转Series自动对齐,strip()用于清理多余的前后空格、换行符,不需要可以去掉
df = pd.DataFrame({k: pd.Series([v.strip() for v in vs]) for k, vs in raw_dict.items()})

# 写入CSV,na_rep参数指定缺失值显示内容,这里设置为空字符串
df.to_csv('output.csv', index=False, na_rep='')

长度不足的列末尾会自动填充空值,写入CSV后对应位置为空,不会影响其他列的对齐。

方法2:手动补全长度(可控性更高)

如果需要自定义缺失值填充逻辑,或者不想依赖Series的自动对齐,可以先计算所有值列表的最大长度,再手动把每个列表补到对应长度:

import pandas as pd
import csv

raw_dict = {} # 同上填写原始字典

# 计算所有值列表的最大长度
max_len = max(len(v) for v in raw_dict.values())

# 每个列表补到max_len长度,这里用空字符串填充,可替换为自定义占位符
processed_dict = {
    k: [x.strip() for x in vs] + ['']*(max_len - len(vs))
    for k, vs in raw_dict.items()
}

# 方式1:用pandas写入
df = pd.DataFrame(processed_dict)
df.to_csv('output.csv', index=False)

# 方式2:不用pandas,直接用csv原生模块写入
with open('output.csv', 'w', newline='', encoding='utf-8') as f:
    writer = csv.writer(f)
    # 写入表头
    writer.writerow(processed_dict.keys())
    # 按行写入数据
    writer.writerows(zip(*processed_dict.values()))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 20:06:05