我的问题是:
这是我的数据帧的一个示例(它实际上是从2002年到2012年)
df = pd.DataFrame(
{'Date':["2002-07-31","2002-07-31","2002-07-31","2002-07-31","2002-07-31","2002-08-31","2002-08-31","2002-08-31","2002-08-31","2002-08-31",'2002-09-30','2002-09-30','2002-09-30','2002-09-30','2002-09-30'],
'Name': ["Paul", "John", "Silvia", "Mike", "Cindy","Paul", "David", "Harry", "Mike", "Britney","Francis", "Michael", "Charlie", "Joe", "Hilary"]})
这就是
Date Name
0 2002-07-31 Paul
1 2002-07-31 John
2 2002-07-31 Silvia
3 2002-07-31 Mike
4 2002-07-31 Cindy
5 2002-08-31 Paul
6 2002-08-31 David
7 2002-08-31 Harry
8 2002-08-31 Mike
9 2002-08-31 Britney
10 2002-09-30 Francis
11 2002-09-30 Michael
12 2002-09-30 Charlie
13 2002-09-30 Joe
14 2002-09-30 Hilary
我想通过保留2002-07-31到2002-08-30和2002-08-31到2002-09-30的所有名称,将序列从每月数据帧重新采样到每日数据帧(更改只发生在每个月底,因此看起来像是使用ffill()方法重新采样)
我想要的结果是这样的:
Date Name
2002-07-31 Paul
2002-07-31 John
2002-07-31 Silvia
2002-07-31 Mike
2002-07-31 Cindy
2002-08-01 Paul
2002-08-01 John
2002-08-01 Silvia
2002-08-01 Mike
2002-08-01 Cindy
2002-08-02 Paul
2002-08-02 John
2002-08-02 Silvia
2002-08-02 Mike
2002-08-02 Cindy
2002-08-03 Paul
2002-08-03 John
2002-08-03 Silvia
2002-08-03 Mike
2002-08-03 Cindy
.....
2002-08-31 Paul
2002-08-31 David
2002-08-31 Harry
2002-08-31 Mike
2002-08-31 Britney
2002-09-01 Paul
2002-09-01 David
2002-09-01 Harry
2002-09-01 Mike
2002-09-01 Britney
....
2002-09-30 Francis
2002-09-30 Michael
2002-09-30 Charlie
2002-09-30 Joe
2002-09-30 Hilary
正如你所看到的,名字只有在每个月底才会改变。 对我来说,最困难的一步是,我选择了5个名称,但我真的不知道如何对每日数据帧重新采样,并且每天仍然有5个名称
我已经看过这个链接了
Resampling Error : cannot reindex a non-unique index with a method or limit
但这其实不是同一个问题,我仍然没有找到任何解决办法来管理我的问题。 如果你有任何想法,欢迎
我将透视数据并使用
asfreq
对数据进行采样,然后堆叠:输出:
首先,确保
Date
列是datetime
对象:然后,按
Date
列分组,按天将名称聚合到list
,resample
并填充,最后执行explode
以扩展名称的list
:相关问题 更多 >
编程相关推荐