0

我有一个带有以下数据的熊猫数据框:

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

结果箱线图看起来像: 在此处输入图像描述

任何想法?

任何帮助表示赞赏...

罗伯特

4

1 回答 1

0

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.boxplotas创建一个箱形图

ax = sns.boxplot(x="interval", y="NewAnswer", hue="answer", data=df1) 

结果如下

在此处输入图像描述

一个人可以做的组合数量是多种多样的,所以我只留下这些,因为 OP 没有指定它的要求,也没有给出预期输出的例子。


笔记:

  1. 确保您已安装所需的库。
  2. 可能还有其他可视化可以更好地与这些数据框一起使用,这里可以看到带有示例的图库
于 2021-05-05T09:40:28.433 回答