将CSV转换为字典,其中一列作为键,一列作为其值

2024-03-28 18:49:47 发布

您现在位置:Python中文网/ 问答频道 /正文

你好,我有一个CSV文件,格式如下:

ticket asset
1111   3456
1111   6789
1122   2345
1122   7890

我想把它转换成像这样的句子:

^{pr2}$

基本上想把票证作为“密钥”,把票证下的所有资产作为“值”。在

在csv.DictReader()帮了一点忙,但我无法提取密钥的唯一票证号,无法匹配其下所有资产的值。在

任何帮助都会很好:)

感谢您这么快就收到CSV>;Dict!在

如果我想把一个元组转换成Dict,那该怎么做呢?在

例如:元组: ((111123456),(11116789),(11222345),(11227890)

我想把它转换成:

{'1111':['3456','6789','1122':['2345','7890']}


Tags: 文件csvgt格式密钥资产assetticket
2条回答

将csv导入熊猫数据框。将数据类型转换为applymap。按票据分组并将所有收集的资产转换为列表。然后将数据帧转换为字典(dict)

import pandas as pd
df=pd.read_csv('file.csv', header=0)
df=df.applymap(str).groupby('ticket')['asset'].apply(list).to_dict()
print(df)

结果:

^{pr2}$

使用collections.defaultdict

from collections import defaultdict
import csv

d = defaultdict(list)
with open(filename, 'r', newline='') as f:
    reader = csv.reader(f, delimiter='\t')
    next(reader) # toss headers
    for ticket, asset in reader:
        d[ticket].append(asset)

使用常规词典:

^{pr2}$

相关问题 更多 >