如何解决绘制带有时间间隔的 Panda 数据框的箱线图
df1[['interval','answer']]
interval answer
0 0 days 06:19:17.767000 no
1 0 days 00:26:35.867000 no
2 0 days 00:29:12.562000 no
3 0 days 01:04:36.362000 no
4 0 days 00:04:28.746000 yes
5 0 days 02:56:56.644000 yes
6 0 days 00:20:13.600000 no
7 0 days 02:31:17.836000 no
8 0 days 02:33:44.575000 no
9 0 days 00:08:08.785000 no
10 0 days 03:48:48.183000 no
11 0 days 00:22:19.327000 no
12 0 days 00:05:05.253000 question
13 0 days 01:08:01.338000 unsubscribe
14 0 days 15:10:30.503000 no
15 0 days 11:09:05.824000 no
16 1 days 12:56:07.526000 no
17 0 days 18:10:13.593000 no
18 0 days 02:25:56.299000 no
19 2 days 03:54:57.715000 no
20 0 days 10:11:28.478000 no
21 0 days 01:04:55.025000 yes
22 0 days 13:59:40.622000 yes
df 的格式为:
id object
datum datetime64[ns]
datum2 datetime64[ns]
answer object
interval timedelta64[ns]
dtype: object
结果箱形图如下所示: enter image description here
有什么想法吗?
感谢任何帮助...
罗伯特
解决方法
Seaborn
可以帮助您实现您想要的。
首先,需要确保列是您想要的类型。
为了重现您的问题,创建了相同的数据框(并为其指定了相同的名称 df1
)。这里可以看到列的数据类型
[In]: df1.dtypes
[Out]:
interval object
answer object
dtype: object
对于“答案”列,可以使用pandas.factorize
如下
df1['NewAnswer'] = pd.factorize(df1['answer'])[0] + 1
这将创建一个新列,并将值 1 分配给 No,2 分配给 Yes,3 分配给 Question,4 分配给 Unscribe。
有了这个,我们已经可以使用 sns.boxplot
as
ax = sns.boxplot(x="interval",y="NewAnswer",hue="answer",data=df1)
结果如下
一个人可以做的组合数量是多种多样的,所以我只留下这些,因为 OP 没有指定它的要求,也没有给出预期输出的例子。
注意事项:
- 确保您已安装所需的库。
- 可能还有其他可视化效果更适合这些数据框,here one can see a gallery with examples。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。