对时间序列数据 pandas 进行重采样

发布于 2025-01-10 06:17:04 字数 175 浏览 0 评论 0原文

我有一个每 10 分钟划分一次的 csv 文件,它告诉我每条线路的乘客数量,但是我有一个从下午 1 点到 4:50 的间隙,它没有注册,我怎样才能用乘客数量 0 来填充它

数据集

I have a csv file divided every 10 minutes that informs me of the number of passengers per line, but I have a gap from 1 pm to 4:50 it does not have a registration, how can I fill it with the number of passengers 0

dataset

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

み格子的夏天 2025-01-17 06:17:04

您可以使用 pd.date_range 创建日期:

>>> start_date = pd.to_datetime("2021-11-08 00:50:00.000")
>>> end_date = pd.to_datetime("2021-11-08 05:00:00.000")

关键字参数 inclusive 从 1.4.0 及更高版本开始可用。对于以前的版本,您必须在 start_date 中添加 10 分钟,并在 end_date 中减去相同的时间量,因为默认情况下这两个值都会包含在您的日期范围内:

>>> target_date_range = pd.date_range(start=start_date, end=end_date, freq="10min", inclusive="neither")

现在您可以使用新行创建数据框并使用 .concat 包含原始数据:

>>> new_rows_df = pd.DataFrame({
    "date": target_date_range,
})
>>> new_rows_df["passengers"] = 0
>>> new_rows_df.head()
                 date  passengers
0 2021-11-08 01:00:00           0
1 2021-11-08 01:10:00           0
2 2021-11-08 01:20:00           0
3 2021-11-08 01:30:00           0
4 2021-11-08 01:40:00           0

>>> df = pd.concat([df, new_rows_df])

You could create a new dataframe with the dates and number of passengers you want by using pd.date_range to create the dates:

>>> start_date = pd.to_datetime("2021-11-08 00:50:00.000")
>>> end_date = pd.to_datetime("2021-11-08 05:00:00.000")

The keyword argument inclusive is available from 1.4.0 and forward. For previous versions, you'll have to add the 10 minutes to start_date and subtract the same time amount to end_date, since both values would be included by default in your date range:

>>> target_date_range = pd.date_range(start=start_date, end=end_date, freq="10min", inclusive="neither")

Now you can create your dataframe with the new rows and use .concat to include your original data:

>>> new_rows_df = pd.DataFrame({
    "date": target_date_range,
})
>>> new_rows_df["passengers"] = 0
>>> new_rows_df.head()
                 date  passengers
0 2021-11-08 01:00:00           0
1 2021-11-08 01:10:00           0
2 2021-11-08 01:20:00           0
3 2021-11-08 01:30:00           0
4 2021-11-08 01:40:00           0

>>> df = pd.concat([df, new_rows_df])
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文