我曾尝试创建时间序列数据集的条形图,但没有成功。我尝试将日期转换为 Pandas Datetime 对象、Timestamp 对象、原始字符串、浮点数和整数。无论我做什么,我都会收到以下错误:TypeError: float() argument must be a string or a number, not 'Timestamp'以下是一些产生错误的最小示例:
在这里,“日期”对象的类型为 <class 'pandas._libs.tslibs.timestamps.Timestamp'>,所以我知道为什么这不起作用:
import matplotlib.pylab as plt
import matplotlib.dates as mdates
import seaborn as sns
def main():
path = 'Data/AQ+RX Counts.csv'
df = pd.read_csv(path, parse_dates=['Date'], index_col=['Date'])
weekly_df = df.resample('W').mean().reset_index()
weekly_df['count'] = df['count'].resample('W').sum().reset_index()
sns.barplot(x = 'Date', y='count', data = weekly_df)
plt.show()
main()
然后我尝试使日期浮动,打算将它们格式化回之后的日期,但这仍然不起作用:
dates = mdates.datestr2num(weekly_df.Date.astype(str))
weekly_df['n_dates'] = dates
sns.barplot(x = 'n_dates', y='count', data = weekly_df)
plt.show()
我也试过使它们成为整数,但无济于事:
dates = mdates.datestr2num(weekly_df.Date.astype(str))
dates = dates.astype(int)
dates = pd.Series(dates)
weekly_df['n_dates'] = dates
sns.barplot(x = 'n_dates', y='count', data = weekly_df)
plt.show()
我尝试了许多其他变体,但都产生了相同的错误。我什至将它与其他代码进行了比较,并验证了所有类型都相同,并且比较代码工作正常。我完全不知道从这里去哪里。
冉冉说
相关分类