【发布时间】:2015-12-23 10:45:30
【问题描述】:
我有两个 pandas 数据框(df1 和 df2):
df1 有 12 列,其中 a1、a2、...、a9 是空列。以下是 df1 的示例:
Stock Start_Date End_Date a1 a2 a3 a4 .... a9
A 09-12-2015 20:04 10-12-2015 23:04
B 09-12-2015 10:04 09-12-2015 20:14
A 11-12-2015 00:22 11-12-2015 08:04
C 08-12-2015 06:56 10-12-2015 20:54
df2 有 4 列。下面是一个示例:
Stock date_time Opening closing
A 09-12-2015 21:24 144.3 10
A 09-12-2015 21:27 225.51 24
B 09-12-2015 10:20 134.42 11
A 09-12-2015 20:04 231.22 17
B 09-12-2015 10:24 399.55 32
A 09-12-2015 20:04 246.77 21
B 09-12-2015 14:22 76.23 8
C 08-12-2015 09:44 232.22 15
C 09-12-2015 20:04 222.91 12
A 11-12-2015 02:06 93.21 7
B 09-12-2015 20:04 211.36 26
C 09-12-2015 20:04 111.21 8
现在,我希望输出是这样的,df1:
Stock Start_Date End_Date a1 a2 a3 a4 ....a9
A 09-12-2015 20:04 10-12-2015 23:04 0 2 2 0 0
B 09-12-2015 10:04 09-12-2015 20:14 1 1 2 0 0
A 11-12-2015 00:22 11-12-2015 08:04 1 0 0 0 0
C 08-12-2015 06:56 10-12-2015 20:54 0 0 0 1 0
即对于 df1 的每个 Stock、Start_Date 和 End_Date 组合,结果应该具有从 df2 开始的该日期时间范围内的每个类别的计数。
这里在最终输出中,a1 = count[opening(0-100)&closing(0-10)], a2 = count[opening(101-200)&closing(11-20)], a3 = count[opening( 201-400)&close(21-50)]、a4 = count[opening(0-100)&close(11-20)]等等,全部9种组合。
我有这方面的 R 代码,但对于更大的数据集效果不佳。任何人都可以帮助我如何在 python/pandas 中执行此操作。任何帮助表示赞赏!
【问题讨论】:
标签: python python-2.7 pandas