Python 如何从CSV文件中的行中读取特定值?
我试着写一个函数来读取一个CSV文件,看起来像这样 flowers.csvPython 如何从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
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并创建数据帧。