Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 根据过去2天的现有日期值添加行_Python_Pandas - Fatal编程技术网

Python 根据过去2天的现有日期值添加行

Python 根据过去2天的现有日期值添加行,python,pandas,Python,Pandas,我有一个数据框: Name Date Bob 2020-05-17 Alice 2020-04-01 下面是预期的结果:对于每个名称组,我希望保留原始行,在Date中再保留两行过去2天的值 Name Date Bob 2020-05-17 Bob 2020-05-16 Bob 2020-05-15 Alice 2020-04-01 Alice 2020-03-31 Alice 2020-03-30 提前谢谢 在列

我有一个数据框:

Name     Date
Bob      2020-05-17
Alice    2020-04-01
下面是预期的结果:对于每个名称组,我希望保留原始行,在Date中再保留两行过去2天的值

Name     Date
Bob      2020-05-17
Bob      2020-05-16
Bob      2020-05-15
Alice    2020-04-01
Alice    2020-03-31
Alice    2020-03-30
提前谢谢

在列表中使用内联日期,然后:

[外]


如果日期排序很重要,您可能需要使用其他方法,然后是:


非常感谢。这应该行得通。我唯一的问题是explode()适用于pandas版本0.25.0及更高版本。我的env有pandas 0.24.2,我不想更新它。你知道有其他方法可以使用explode()吗?嘿@MAMS,查看更多的方法来分解这个列。希望有帮助,有帮助。非常感谢你!
df = (df.assign(Date=[pd.date_range(end=e, periods=3, freq='D')
                for e in df['Date']])
      .explode('Date'))
    Name         Date
0    Bob   2020-05-15
0    Bob   2020-05-16
0    Bob   2020-05-17
1  Alice   2020-03-30
1  Alice   2020-03-31
1  Alice   2020-04-01
(df.assign(Date=[pd.date_range(end=e, periods=3, freq='D')
                for e in df['Date']])
      .explode('Date')
      .sort_values(['Date'], ascending=False)
      .sort_index())