Python 如何从CSV文件中的行中读取特定值?

Python 如何从CSV文件中的行中读取特定值?,python,csv,Python,Csv,我试着写一个函数来读取一个CSV文件,看起来像这样 flowers.csv petunia,5.95 alyssum,3.95 begonia,5.95 sunflower,5.95 coelius,4.95 我已经为我的函数尝试了此代码 def read_csv(csv_pricefile): import csv f = open(csv_pricefile) li = [] for row in csv.reader(f): li.app

我试着写一个函数来读取一个CSV文件,看起来像这样

flowers.csv

petunia,5.95
alyssum,3.95
begonia,5.95
sunflower,5.95
coelius,4.95
我已经为我的函数尝试了此代码

def read_csv(csv_pricefile):
    import csv 
    f = open(csv_pricefile)
    li = []
    for row in csv.reader(f):
        li.append(row)
    f.close()
    print(li)

read_csv("flower.csv")
当我调用我的函数时,它给出以下输出

[['petunia', '5.95'], ['alyssum', '3.95'], ['begonia', '5.95'], ['sunflower', '5.95'], ['coelius', '4.95']]
3.95
但我不知道如何编写一个函数,以两个参数为例

read_csv("flowers.csv","alyssum")
如果我调用这个函数,它应该给我以下输出

[['petunia', '5.95'], ['alyssum', '3.95'], ['begonia', '5.95'], ['sunflower', '5.95'], ['coelius', '4.95']]
3.95

使用pandas库读取csv,这将生成一个dataframe对象

import pandas as pd
df = pd.read_csv('flowers.csv')
df.columns =['flower','price']
那个么若你们想知道任何一朵花的价格

df = df.set_index(['flower'])
f = 'alyssum'
print("{} costs {}".format(f,df.loc[f].price))

这是我刚刚尝试过的解决方案

def read_csv(csv_pricefile,flower):
    import csv 
    f = open(csv_pricefile)
    my_dic = {}
    for row in csv.reader(f):
        myData = {row[0]:row[1]}
        my_dic.update(myData)
    f.close()
    print(my_dic[flower])

read_csv("flower.csv","alyssum")

Stackoverflow不是免费的编码服务,您至少应该为我们提供您尝试过的服务。您可以做的是将CSV按行分割,使其成为一个数组。此数组包含的键/值对与文件中的行数相同。然后,您可以只选择所需的键并获取关联的值。非常感谢,这非常有帮助。如果您不介意,您可以看看我的解决方案。请给我您的想法。我认为您建议的解决方案是有效的,但当您的输入数据有更多行时会发生什么情况,例如花卉颜色。那你会再编一本字典吗?或者创建一个字典,其中键是flower,值是包含所有数据的向量?在我看来,最好使用pandas库读取csv并创建数据帧。