【发布时间】:2014-05-11 14:16:05
【问题描述】:
Pandas -- 如何遍历过滤 DataFrame 的日期列表
我有一个 DataFrame 'numbers',像这样:
Date group Number
0 2013-02-01 group1 -0.098765
1 2013-02-02 group2 0.519878
2 2013-02-03 group1 -0.098765
3 2013-02-04 group3 1.960784
4 2013-02-05 group3 2.859412
5 2013-02-06 group2 1.960784
6 2013-02-07 group1 -0.696594
还有另一个 DataFrame 中的日期列表,“datelist”,如下所示:
Date
0 2013, 3,5
1 2013, 3,6
2 2013, 3,7
3 2013, 3,8
4 2013, 3,9
5 2013, 3,10
6 2013, 3,11
我正在尝试返回一个新的数据框,其中包含“数字”中的每条记录,其中日期为
我试过这个:
for date in datelist:
end = datelist['Date']
numbers2 = numbers[numbers.Date <= end]
但 for 循环返回一个与原始 DataFrame 'numbers' 相同的 DataFrame。
Date group Number
0 2013-02-01 group1 -0.098765
1 2013-02-02 group2 0.519878
2 2013-02-03 group1 -0.098765
3 2013-02-04 group3 1.960784
4 2013-02-05 group3 2.859412
5 2013-02-06 group2 1.960784
6 2013-02-07 group1 -0.696594
如果我像这样手动输入一系列日期,我可以正确生成我需要的数据帧:
end = pandas.datetime(2013,2,26)
numbers2 = numbers[numbers.Date <= end]
我不会通过详细说明此过程的其余部分来使事情复杂化——基本上,我正在按“组”对“numbers2”数据帧进行分组,并将计算结果附加到另一个数据帧,然后再继续下一个日期。
谁能指出我使用循环执行此操作的正确方法?
【问题讨论】: