使Matplotlib忽略标题

omqzjyyz  于 2023-03-19  发布在  其他
关注(0)|答案(2)|浏览(148)

我的朋友正在尝试使用python import matplotlib和我给她的CSV文件制作一个图表,但是我给她的CSV文件包含标题(国家、所以py程序无法正常运行。错误消息说“无法将字符串转换为浮点型”。下面是她的代码,我的文件的一个例子。她如何使条形图忽略CSV文件的第一行,以便代码能够运行

import matplotlib.pyplot as plt
import csv

price = []
countries = []
    
with open ("CpremiumusersEurope.csv","r") as csvfile:
    plot = csv.reader(csvfile)
    for row in plot:
        price.append(float(row[1]))
        countries.append(str(row[0]))

plt.style.use('grayscale') 
plt.bar( countries, price, label='Europe', color='red')

plt.ylabel('Price in Europe ($)')
plt.title('Cost of spotify premium per country')
plt.xticks(rotation=90)

plt.legend(loc='best')
plt.show()
vjrehmav

vjrehmav1#

您可以跳过第一行,如下所示:

for idx, row in enumerate(plot):
    if idx == 0:
        continue 
    price.append(float(row[1]))
    countries.append(str(row[0]))

你也可以用这种方式跳过它,我不太喜欢,因为它不太灵活。

for row in plot:
    if row[1] == 'COST':
        continue 
    price.append(float(row[1]))
    countries.append(str(row[0]))
rkkpypqq

rkkpypqq2#

csv.reader返回一个迭代器,因此可以在plot上调用next,使其前进到下一行:

with open ("CpremiumusersEurope.csv","r") as csvfile:
    plot = csv.reader(csvfile)
    # Consume the first row from plot
    next(plot)
    # Now loop over the rest of the rows.
    for row in plot:
        price.append(float(row[1]))
        countries.append(str(row[0]))

相关问题