将.csv文件加载到字典中并分别打印键和值

2024-06-16 10:12:20 发布

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

我很难弄清楚如何将多个.csv文件存储到字典中,然后分别打印键和值。我必须把6.csv文件都包含不同的信息,然后把它们载入字典,然后写一个代码,这样我就可以把键和它相关的各种值隔离开来,这样我就可以打印“动物”吃了“prey1,prey2,等等”。在

我想我必须分别处理每个文件,所以6个不同的循环才能为每个键/值列表获得正确的输出,但是我所尝试的一切都给了我一个错误消息。 以下是csv文件和预期输出的示例:

文件1.csv:

Rabbit,Grass  
Snake,Mouse  
Mouse,Grass  

输出:

^{pr2}$

这是到目前为止我对一个文件的代码:

import sys
import csv

inf = open("file1.csv", "r")
reader = csv.reader(inf)

data = {}
for row in reader:
    for i in data.keys():
        print(data[i], "eats", i)

我知道这是不对的,但我不知道如何在字典中隔离一个.csv文件的键。我是新的编码,所以任何帮助将不胜感激!:) 我用的是Python3。 谢谢!!在


Tags: 文件csv代码inimport信息fordata
2条回答

好吧,CSV中没有键(标题字段)或任何内容,只是简单的值对,您只想单独打印每行的元素,这非常简单:

import csv

with open("file1.csv", "r") as f:
    reader = csv.reader(f)
    for row in reader:
        print(row[0], "eats", row[1])

应产生:

^{pr2}$

更新:如果要将数据存储到字典中,只需将第一个值用作键,将第二个值用作其中一个值,例如:

import collections
import csv

# we'll use defaultdict to save us some trouble initializing for each predator
predators = collections.defaultdict(set)  # our final dict, use set to filter out duplicates

files = ["file1.csv", "file2.csv", "file3.csv"]  # all of your CSV files

for file in files:  # go through each CSV file...
    with open(file, "r") as f:  # open it...
        reader = csv.reader(f)  # make a CSV reader
        for row in reader:  # go through it line by line
            predators[row[0]].add(row[1])  # add it to the predators dict

for predator in predators:
    print(predator, "eats", predators[predator])

您应该签出pandas。 很适合做这种事。在

df = pd.read_csv('file1.csv', names=['Predator','Prey'])
df['statement'] = df.Predator + ' eats ' + df.Prey

for s in df.statement:
    print(s)

如果你想知道{捕食者':'猎物'}你可以的

^{pr2}$

相关问题 更多 >