使用groupby的一列创建带有熊猫的X个新列

Obchardon

我有这个数据框df

                     date dir
0     2018-01-23 11:39:41  O1
1     2018-01-23 12:47:58  E0
2     2018-01-23 13:01:19  O1
3     2018-01-23 13:01:21  O1
4     2018-01-23 13:06:06  O1
5     2018-01-23 13:32:55  O1
6     2018-01-23 13:33:56  O1
7     2018-01-23 13:33:58  O1
8     2018-01-23 13:46:47  E0
9     2018-01-23 14:04:01  E0
10    2018-01-23 14:04:39  O1
11    2018-01-23 14:09:16  E0
12    2018-01-23 14:17:46  E0
...

我想按date(每小时)和dir(方向)计算发生次数有两个不同的方向:E0O1

所以我做到了:

df = df.groupby(['dir',pd.Grouper(key='date', freq='H')]).size()

当然我得到了这样的东西:

dir  date               
E0   2018-01-23 12:00:00     1
     2018-01-23 13:00:00     1
     2018-01-23 14:00:00     5
...
O1   2018-05-21 19:00:00     1
     2018-05-21 20:00:00     1
     2018-05-22 06:00:00     2
...

但是我想为每个不同的方向创建一个新列:

                date    E0 O1
 2018-05-21 19:00:00     1  0
 2018-05-21 20:00:00     1  2
 2018-05-22 06:00:00     2  0
...

我该怎么办?

耶斯列尔

使用Series.unstack由第一级和参数fill_value进行更换新的NaN非存在组合的价值观dirdateS:

df = df.groupby(['dir',pd.Grouper(key='date', freq='H')]).size().unstack(0, fill_value=0)
print (df)
dir                  E0  O1
date                       
2018-01-23 11:00:00   0   1
2018-01-23 12:00:00   1   0
2018-01-23 13:00:00   1   6
2018-01-23 14:00:00   3   1

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何创建一个新列,其中包含Nan带有熊猫的列的名称?

熊猫-使用groupby创建另一列的最后N个值的总和来创建新列

每组的唯一值计数为带有熊猫的新列

熊猫-使用前一列的汇总创建一个新列

跟踪数据框中的文件并将位置放在带有熊猫的另一列中

创建一个新变量并基于带有熊猫数据框的日期范围应用条件值

熊猫根据第一列以外的所有现有列的值创建新列

从带有熊猫的列中提取值时,无法仅检索遇到的第一个值

如何摆脱某些列并将其写到另一个带有熊猫的文件中?

熊猫使用与另一列对应的唯一值的所有条目创建新列

熊猫使用groupby的计数创建新列

熊猫,使用groupby值创建新列

熊猫:为另一列是否为空白创建一个新列

根据另一列的groupby结果创建一个新列

在Python中基于带有熊猫的索引在新列中添加值

熊猫-用另一列的最后N个值的总和创建新列

Groupby + 来自另一列的条件以创建新列

从带有熊猫的日期时间列中选择行

带有熊猫read_json的列dtype

熊猫groupby,在一个列上有条件以填充另一列

熊猫:groupby并创建一个新的列,将聚合应用于两列

在大熊猫的日期级别基于groupby date time列创建一个新列

熊猫创建一个带有条件的新列(现有列上的最大日期和 == 条件)

R:使用现有值创建一个新列,以另一列的组为条件

根据在另一列中测试的条件创建带有组标签的新列

Pandas - 根据 str 包含从另一列创建带有值的新列

读取带有列表的熊猫列以创建新的分类列

使用现有数据框中的值创建包含带有熊猫的二进制值列的数据框

大熊猫使用另一列中的多个字符串创建一个新列