使用 Pandas 进行分析的第二天,我现在正在尝试利用它的绘图功能。我在根据对按日期(以年为单位)分组的列求和后得到的数据帧创建折线图时遇到问题。 我想要的图应该显示全年订单量的增长情况,因此日期应该是 X 轴,订单应该是 Y 轴。
我的导入如下:
import pandas
import matplotlib.pyplot
import seaborn as sns
我有一个包含所有信息的主数据框,从该 df 中,我制作了另一个仅包含一列总和的数据框。
ordersYears = rawData.groupby(rawData['Date'].dt.year)['Total Records'].sum();
ordersYears.set_index('Date')['Total Records'].plot();
但是,我收到错误 AttributeError: 'Series' object has no attribute 'set_index'
如果我尝试查看 orderYears.index 我得到 p>
Int64Index([2018, 2019], dtype='int64', name='Date')
因此,这似乎没有被正确识别为日期。仅供引用,主数据框中的日期列是日期时间,我明确地将其转换为该格式,如果“日期”不是日期时间,创建其他数据框的过程将无法工作。
对正在发生的事情有什么想法吗?
最佳答案
对于pd.series
,您需要使用series.reindex()
。 set_index()
用于pd.DataFrame
。此外,您不需要选择一列(series
只有一列)。
ordersYears.reindex(<the values you want as index>).plot()
关于python - 无法在 Pandas 中创建折线图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59178927/