Pandas海上出生的线图色调出乎意料的传奇

2024-06-24 13:22:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个客户名称、日期和交易的数据框架。我不确定我的错误发生了多远,因此以下是我所做的所有预处理:

data = pd.read_excel('Test.xls')
## convert to datetime object 
data['Date Order'] = pd.to_datetime(data['Date Order'], format = '%d.%m.%Y')
## add columns for month and year of each row for easier analysis later
data['month'] = data['Date Order'].dt.month
data['year'] = data['Date Order'].dt.year  

因此,数据帧变得类似于:

Date Order           NameCustomers         SumOrder          month         year
2019-01-02 00:00:00   Customer 1             290              1            2019  
2019-02-02 00:00:00   Customer 1             50               2            2019  
----- 
2020-06-28 00:00:00   Customer 2             900              6            2020
------ 

……等等。 你明白了。接下来,我分月份和年份分组,并计算平均值

groupedMonthYearMean = data.groupby(['month', 'year'])['SumOrder'].mean().reset_index()

输出:

month    year    SumOrder 
1        2019    233.08
1        2020    303.40
2        2019    255.34   
2        2020    842.24
--------------------------

我使用生成的数据框制作了一个线形图,它跟踪每个月的SumOrder,并显示每年的SumOrder

linechart = sns.lineplot(x = 'month', 
                         y = 'SumOrder', 
                         hue = 'year',
                         data = groupedMonthYearMean).set_title('Mean Sum Order by month')
plt.show()

我附上了一个截图的结果情节-总的来说,它似乎显示了我希望创造。 在我的全部数据中,“年份”列只有两个值:2019年和2020年。出于某种原因,无论我做什么,它们都显示为0,-1和-2。知道发生了什么事吗

unexpected hue legend


Tags: to数据fordatadatetimedatedtorder