如何修复 Python 上的此类型错误(“值”必须是 str 或字节的实例,而不是浮点数)

Sit*_*iti 8 python csv matplotlib

我想绘制印度 Covid-19 的图表,到目前为止,当我手动输入数据作为 x 轴和 y 轴时没有问题。但由于数据很长,当我想将其读取为 .csv 文件时,它给了我这个错误'value' 必须是 str 或 bytes 的实例,而不是 float。我也尝试包装int(corona_case),但又给了我另一个新错误,无法将系列转换为 <class 'int'。另外,如果有人能建议我使用 python 绘制涉及日期时间的图形的教程,我将非常感激,因为这是我第一次学习 python。我正在使用Python 3。

p/s 我似乎找不到共享我的 csv 文件的方法,所以我将把它留在片段中。

import pandas as pd
from datetime import datetime, timedelta
from matplotlib import pyplot as plt
from matplotlib import dates as mpl_dates
import numpy as np

plt.style.use('seaborn')

data = pd.read_csv('india.csv')
corona_date = data['Date']
corona_case = data['Case']
 
plt.plot_date (corona_date, corona_case, linestyle='solid')

plt.gcf().autofmt_xdate()

plt.title('COVID-19 in India')
plt.xlabel('Date')
plt.ylabel('Cumulative Case')

plt.tight_layout()

plt.show()
Run Code Online (Sandbox Code Playgroud)

Date,Case
2020-09-30,6225763
2020-10-01,6312584
2020-10-02,6394068
2020-10-03,6473544
2020-10-04,6549373
2020-10-05,6623815
2020-10-06,6685082
Run Code Online (Sandbox Code Playgroud)

小智 0

您可以像这样转换 pandas 数据框中的列类型。

corona_case = data['case'].astype(int) # or str for string
Run Code Online (Sandbox Code Playgroud)

如果这就是你想要做的。