gpt4 book ai didi

python - 如何将开始和结束日期记录转换为时间戳?

转载 作者:行者123 更新时间:2023-12-01 09:25:59 25 4
gpt4 key购买 nike

例如(输入 pandas 数据框):

start_date   end_date  value
0 2018-05-17 2018-05-20 4
1 2018-05-22 2018-05-27 12
2 2018-05-14 2018-05-21 8

我希望它将该值除以数据中存在的间隔数(例如 2018-05-12 到 2018-05-27 有 6 天,12/6 = 2),然后创建一个时间序列数据,例如以下内容:

date  value
0 2018-05-14 1
1 2018-05-15 1
2 2018-05-16 1
3 2018-05-17 2
4 2018-05-18 2
5 2018-05-19 2
6 2018-05-20 2
7 2018-05-21 1
8 2018-05-22 2
9 2018-05-23 2
10 2018-05-24 2
11 2018-05-25 2
12 2018-05-26 2
13 2018-05-27 2

这是否可以在不使用 pandas 对每一行进行低效循环的情况下完成?这个方法还有名字吗?

最佳答案

您可以使用:

#convert to datetimes if necessary
df['start_date'] = pd.to_datetime(df['start_date'])
df['end_date'] = pd.to_datetime(df['end_date'])

对于每一行,按 date_range 生成 Series 列表,然后将它们的长度和聚合除以 groupby总和:

dfs = [pd.Series(r.value, pd.date_range(r.start_date, r.end_date)) for r in df.itertuples()]
df = (pd.concat([x / len(x) for x in dfs])
.groupby(level=0)
.sum()
.rename_axis('date')
.reset_index(name='val'))
print (df)
date val
0 2018-05-14 1.0
1 2018-05-15 1.0
2 2018-05-16 1.0
3 2018-05-17 2.0
4 2018-05-18 2.0
5 2018-05-19 2.0
6 2018-05-20 2.0
7 2018-05-21 1.0
8 2018-05-22 2.0
9 2018-05-23 2.0
10 2018-05-24 2.0
11 2018-05-25 2.0
12 2018-05-26 2.0
13 2018-05-27 2.0

关于python - 如何将开始和结束日期记录转换为时间戳?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50392832/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com