我有一个简单的数据框,只有date
列和amount
列:
local_date amount
48 2020-01-01 30.00
464 2020-01-01 1.49
465 2020-01-01 22.45
469 2020-01-01 7.49
472 2020-01-01 19.17
473 2020-01-01 49.37
475 2020-01-01 7.72
481 2020-01-01 59.98
482 2020-01-01 8.20
483 2020-01-01 14.24
Dtypes:
local_date datetime64[ns]
amount float64
我想对其重新采样,以获取每周amount
的总和,然后进行绘制。
重新采样有效:
df.set_index('local_date')['amount'].resample('W').sum()
local_date
2020-01-05 339198.67
2020-01-12 570769.94
2020-01-19 556042.39
2020-01-26 564230.50
2020-02-02 569204.69
2020-02-09 606505.21
2020-02-16 620612.11
2020-02-23 618156.03
2020-03-01 645825.50
2020-03-08 688377.73
2020-03-15 892803.67
2020-03-22 783538.04
2020-03-29 856011.93
2020-04-05 243519.71
Freq: W-SUN, Name: amount, dtype: float64
但是当我向其中添加.plot()
时,我得到一个错误:
df.set_index('local_date')['amount'].resample('W').sum().plot()
TypeError: float() argument must be a string or a number, not 'Period'
我肯定我已经用这种方法多次绘制过。如果plot参数不接受句点,是否必须将其转换为字符串?
答案 0 :(得分:0)
我会这样。
数据
强制日期到日期时间
df['local_date']=pd.to_datetime(df['local_date'])
分组日期并计算每个日期的金额总和
df.groupby(df.index.date)['amount'].sum().reset_index().plot()