python - 如何以列形式将字典保存在 csv 中,其中第一行是键,下一行是向量?

标签 python csv

我有一个字典,其格式如下:

Sigs_dict['a']=[1,2,3,4,5]
Sigs_dict['b']=[6,7,8,9,0]
Sigs_dict['c']=[1,2,3,4,5]

我想要一个 csv 文件,其中第一行是字典的键,下一行是列形状的向量。 喜欢:

a    b    c
1    6    1
2    7    2
3    8    3
4    9    4
5    0    5

我现在只有第一行,但我不明白如何正确编写向量。

with open(fileName[0], 'w') as f:
    writer = csv.writer(f, delimiter = ' ')
    writer.writerow(Sigs_dict.keys())
    #missing something here

所有向量的长度都相同。

最佳答案

使用 zip built-in 的简单选项(没有 pandas 依赖,尽管 pandas 允许更少的代码行):

my_dict = {}
my_dict['a'] = [1, 2, 3, 4, 5]
my_dict['b'] = [6, 7, 8, 9, 0]
my_dict['c'] = [1, 2, 3, 4, 5]

# get keys and values in the same order, in this case, sorted by key
# key_list = sorted(my_dict.keys())
key_list = [k for k, _ in sorted(my_dict.items())]
val_list = [v for _, v in sorted(my_dict.items())]

with open(fileName[0], 'w') as f:
    writer = csv.writer(f, delimiter=' ')
    writer.writerow(key_list)
    for row in zip(*val_list):
        writer.writerow(row)

请注意我是如何使用星号 (*) 解压 val_list 的;如果不拆包,这将无法按预期工作。


编辑我的代码以具有固定的顺序,以防止列标题和内容之间不匹配。

关于python - 如何以列形式将字典保存在 csv 中,其中第一行是键,下一行是向量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52781318/

相关文章:

python - scipy.linalg.inv 是否检查矩阵是否为对角矩阵?

python - 使用外部 url 时的 Pandas read_csv 响应代码

python - 为什么数据透视表返回 Int64 类型错误?

python - Python 语句中的 if-else 子句

oracle - 从 Oracle 数据库表生成 .csv 文件的最快方法是什么?

python - Queryset.create() 方法中的 Django, 'self._for_write' 是什么?

powershell - 如何加快 PowerShell 中的进程

Python csv : Split column to columns and then to rows by delimiter

iOS 写入 CSV 文件 : which encoding to use

python - 在不阅读的情况下查找 csv 中的行数