首页 > 解决方案 > 使 Matplotlib 忽略标题

问题描述

我的朋友正在尝试使用 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()

标签: pythoncsvmatplotlibgraph

解决方案


您可以像这样跳过第一行:

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]))

推荐阅读