使用csv python行和列

2024-04-23 08:40:02 发布

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

嘿,我想用python中的内置模块csv创建一个字典。实际上,它是一个名为天气.csv其中,行字典中的键是列标题,值是该行中的值。我被卡住了,因为我无法让代码运行多列来同时生成两个字典。另外,我得到一个关键错误,它说打印行['col\u list'],我不明白为什么会发生这种情况。列列表是每行的标题。以下是迄今为止我的代码:

import csv
def read_file(filename, col_list):
    filename = 'weather.csv'
    with open('weather.csv', 'r') as f:
        reader = csv.DictReader(f)      
        for row in reader:               
            print row['col_list']

这就是我想要的输出。我想我缺少的东西很简单,但我很难弄清楚。你知道吗

print read_file('weather.csv', ['TemperatureF', 'VisibilityMPH'])
{'TemperatureF': [30.9, 32.0, 32.0, 32.0, 32.0, 30.9 ...],
'VisibilityMPH': [10.0, 10.0, 10.0, 10.0, 4.0, 2.5 ...]}  

Tags: csv标题read字典colfilename内置list
2条回答

如果您可以使用pandas,我认为它比csv模块更适合此任务。你知道吗

import pandas as pd
df = pd.read_csv(filename, names=col_list)
dict_ = df.to_dict()

如何创建一个字典,为每个列标题提供键,并为该列包含的所有值创建一个列表?例如

import csv

def read_file(filename, col_list, data={}):

    with open('weather.csv', 'r') as f:

        reader = csv.DictReader(f)      
        for num, row in enumerate(reader):
            if num == 0: continue # skip if it's the first row, which has the headings
            for col in col_list:
                if not data.get(col): data[col] = list()
                data[col].append(row[col])

    return data

相关问题 更多 >