gpt4 book ai didi

python - 如何在 Pandas 中扩展和创建以下数据集

转载 作者:行者123 更新时间:2023-12-05 05:53:28 25 4
gpt4 key购买 nike

我有一个看起来像这样的数据集:

enter image description here

df = pd.DataFrame({
'weekstart':['01-Jan-18','08-Jan-18','15-Jan-18','22-Jan-18'],
'weekend':['07-Jan-18','14-Jan-18','21-Jan-18','28-Jan-18'],
'Spend':[34235.922,37359.6048,38916.1164,36903.8628],
'Daily':[4890.846,5337.086,5559.445,5271.98],
})

我想扩展它以获取每日值并创建一个包含每日日期的新数据集以形成如下内容:

enter image description here

谢谢!!

最佳答案

  1. 转换为日期时间
  2. 使用 pd.date_range 创建一个包含“weekstart”和“weekend”之间所有日期的列
  3. 使用 explode 拆分成单独的行。
df["weekstart"] = pd.to_datetime(df["weekstart"])
df["weekend"] = pd.to_datetime(df["weekend"])

df["days"] = df.apply(lambda x: pd.date_range(x["weekstart"], x["weekend"], freq="D"), axis=1)
df = df.explode("days")
output = df[["days", "Daily"]]

>>> output

days Daily
0 2018-01-01 4890.846
0 2018-01-02 4890.846
0 2018-01-03 4890.846
0 2018-01-04 4890.846
0 2018-01-05 4890.846
0 2018-01-06 4890.846
0 2018-01-07 4890.846
1 2018-01-08 5337.086
1 2018-01-09 5337.086
1 2018-01-10 5337.086
1 2018-01-11 5337.086
1 2018-01-12 5337.086
1 2018-01-13 5337.086
1 2018-01-14 5337.086
2 2018-01-15 5559.445
2 2018-01-16 5559.445
2 2018-01-17 5559.445
2 2018-01-18 5559.445
2 2018-01-19 5559.445
2 2018-01-20 5559.445
2 2018-01-21 5559.445
3 2018-01-22 5271.980
3 2018-01-23 5271.980
3 2018-01-24 5271.980
3 2018-01-25 5271.980
3 2018-01-26 5271.980
3 2018-01-27 5271.980
3 2018-01-28 5271.980

关于python - 如何在 Pandas 中扩展和创建以下数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69885515/

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