遍历日期时间熊猫

时间:2018-07-04 09:01:22

标签: python pandas loops datetime dataframe

当前我有以下代码:

averages = []
    for i, row in amount_before_avg.iterrows():
        datetime = row['datetimes_actual']
        datetime_plus_week = row['datetimes_actual'] + one_week
        datetime_plus_twoweek = row['datetimes_actual'] + two_weeks
        datetime_min_week = row['datetimes_actual'] - one_week
        datetime_min_twoweek = row['datetimes_actual'] - two_weeks

        try:
            total = (int(row['Amount']))+
                     int(df.loc[df['datetimes_actual'] == datetime_plus_week, 'Amount'])+
                     int(df.loc[df['datetimes_actual'] == datetime_plus_twoweek, 'Amount'])+
                     int(df.loc[df['datetimes_actual'] == datetime_min_week, 'Amount'])+
                     int(df.loc[df['datetimes_actual'] == datetime_min_twoweek, 'Amount']))
        except:
            total = 5
        averages.append(total/5)

您可能会看到,我正在尝试创建一个滚动平均值列表,将数据框中每个日期时间点的金额平均值加上接下来的2周和前2周。现在很奇怪的是,由于某种原因,当我在接下来的几周中使用它时,它会检索数据。但是,当我用前两周的时间时,它不会选择任何数据。这不是因为滚动平均值的缘故,因为它也出现在数据帧的中间。

以下是打印语句的一些输出以显示问题:

datetime -> 2017-09-04 20:00:00
datetime_plus_week -> 2017-09-11 20:00:00
datetime_plus_twoweek -> 2017-09-18 20:00:00
datetime_min_week -> 2017-08-28 20:00:00
datetime_min_twoweek -> 2017-08-21 20:00:00
corresponding amount for datetime_plus_week -> 4
corresponding amount for datetime_plus_twoweek -> 6

在前两个对应的数量之后,该函数停止。我确定每个数据点都有一个对应的日期时间(边缘处除外),并且我开始觉得这很奇怪,因为要遍历列表。

有人知道这样的问题吗?还是有人在我的代码中发现明显的错误?如果可以,我很想知道!

预先感谢:)

0 个答案:

没有答案