我的数据集大多是非数字形式。我很想为他们创建一个可视化文件,但出现错误消息。
我的数据集如下
|plant_name|Customer_name|Job site|Delivery.Date|DeliveryQuantity|
|SN13|John|Sweden|01.01.2019|6|
|SN14|Ruth|France|01.04.2018|4|
|SN15|Jane|Serbia|01.01.2019|2|
|SN11|Rome|Denmark|01.04.2018|10|
|SN14|John|Sweden|03.04.2018|5|
|SN15|John|Sweden|04.09.2019|7|
|
我需要创建一个线图,以显示约翰使用“交货日期”作为时间轴(x轴)进行购买的次数
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
import seaborn as sns
pd.set_option("display.max_rows", 5)
hr_data = pd.read_excel("D:\data\Days_Calculation.xlsx", parse_dates = True)
x = hr_data['DeliveryDate']
y = hr_data ['Customer_name']
sns.lineplot(x,y)
Error: No numeric types to aggregate
我的预期结果显示为像这样的线图
John的标记将显示在时间轴(“交付日期”)上的“ 01.01.2019”,“ 03.04.2018”和“ 04.09.2019”
另一个实例 例如,要绘制字符串与浮动的关系图,例如数量总数(DeliveryQuantity)与客户名称的关系。如何解决这个问题
如何格式化绘图(而非标签)的轴距
答案 0 :(得分:1)
通常来说,在使用分类数据时,您必须汇总一些东西。无论您是要在栏中计算名称,还是要添加订单数量,还是对某些类别进行排名,这仍然是数字数据。
plot_data = hr_data.pivot_table(index='DeliveryDate', columns='Customer_name', values='DeliveryQuantity', aggfunc='sum')
plt.xticks(LISTOFVALUESFORXRANGE)
plot_data.plot(legend=False)
答案 1 :(得分:1)
为什么不将交货日期作为时间戳对象而不是字符串?
hr_data["Delivery.Date"] = pd.to_datetime(hr_data["Delivery.Date"])
现在您有了绘图选项。
和约翰一起工作。
john_data = hr_data[hr_data["Customer_name"]=="John"]
sns.countplot(john_data["Delivery.Date"])