【发布时间】:2021-06-21 23:10:36
【问题描述】:
您好,我目前正在按数据框中的唯一日期运行 for 循环,以将其传递给函数。 但是,我想要的是通过我的数据框迭代唯一的日期和时间(例如 2020-12-18 15:00、2020-12-18 16:00)。有没有办法做到这一点?
这是我的代码和我的数据框示例。
for day in df['DateTime'].dt.day.unique():
testdf = df[df['DateTime'].dt.day == day]
testdf.set_index('DateTimeStarted', inplace=True)
output = mk.original_test(testdf, alpha =0.05)
output_df = pd.DataFrame(output).T
output_df.rename({0:"Trend", 1: "h", 2:"p", 3:"z", 4:"Tau", 5:"s", 6:"var_s", 7:"slope", 8:"intercept"}, axis = 1, inplace = True)
result_df = result_df.append(output_df)
DateTime Values
0 2020-12-18 15:00:00 554.0
1 2020-12-18 15:00:00 594.0
2 2020-12-18 15:00:00 513.0
3 2020-12-18 16:00:00 651.0
4 2020-12-18 16:00:00 593.0
5 2020-12-18 17:00:00 521.0
6 2020-12-18 17:00:00 539.0
7 2020-12-18 17:00:00 534.0
8 2020-12-18 18:00:00 562.0
9 2020-12-19 08:00:00 511.0
10 2020-12-19 09:00:00 512.0
11 2020-12-19 09:00:00 584.0
12 2020-12-19 09:00:00 597.0
13 2020-12-22 09:00:00 585.0
14 2020-12-22 09:00:00 620.0
15 2020-12-22 09:00:00 593.0
【问题讨论】:
-
所以只需要删除2次
.dt.day? -
抱歉没有真正理解你的意思。实际的数据框有超过 2 个日期。这里显示的只是一个示例
-
我认为您的解决方案中应该删除
.dt.day -
上述解决方案很好
标签: python-3.x pandas datetime time-series