Python 熊猫在日期上重复行间距
我有一个熊猫数据框,看起来与下面类似(我现在有CSV格式,因为它在我的工作电脑上): UNITID,COMPETITORID,CompetitorName,PRICE,DATECHANGE 123555,xyz 1,2.33,3/3/2013 123555,xyz 1,2.34,3/5/2013 123555,xyz 1,2.24,3/15/2013 123666,xyz 2,4.24,2/15/2013 123666,xyz 2,4.44,3/15/2013 123666,xyz 2,1.44,3/25/2013 223777,xyz 3,2.44,3/25/2013 223777,xyz 3,2.54,3/28/2013 223777,xyz 3,1.54,3/29/2013 我试图填补日期上的空白,例如: 123,555,xyz 1, 2.33,3/3/2013 123,555,xyz 1, 2.33,3/4/2013 123,555,xyz 1, 2.34,3/5/2013 123,555,xyz 1, 2.34,3/6/2013 123,555,xyz 1, 2.34,3/7/2013 123,555,xyz 1, 2.34,3/8/2013 . . 123555,xyz 1,2.33,3/3/2013 123555,xyz 1,2.33,3/4/2013 123555,xyz 1,2.34,3/5/2013 123555,xyz 1,2.34,3/6/2013 123555,xyz 1,2.34,3/7/2013 123555,xyz 1,2.34,3/8/2013 . . 我对熊猫比较陌生,也见过一些类似的例子,但似乎无法让它们发挥作用。我提出了一个可能效率低下的解决方案,我复制了日期字段,然后将其上移,减去日期,然后按天数差迭代行-可能不是最好的 有什么想法/建议吗Python 熊猫在日期上重复行间距,python,pandas,Python,Pandas,我有一个熊猫数据框,看起来与下面类似(我现在有CSV格式,因为它在我的工作电脑上): UNITID,COMPETITORID,CompetitorName,PRICE,DATECHANGE 123555,xyz 1,2.33,3/3/2013 123555,xyz 1,2.34,3/5/2013 123555,xyz 1,2.24,3/15/2013 123666,xyz 2,4.24,2/15/2013 123666,xyz 2,4.44,3/15/2013 123666,xyz 2,1.44
谢谢。我将加载csv并将“DATECHANGE”列解析为datetime,然后调用并传递param
“fill\u method=ffill”
以执行每日重新采样,然后:
您必须临时将索引设置为“DATECHANGE”列,因为“重采样”仅适用于类似datetime的索引。感谢您的帮助,这可能是重复的。这几乎就是我所需要的,除了各种UNITID/COMPETITORID组合有重复的日期。无论如何,这仍然是有帮助的。 123,555,xyz 1, 2.33,3/3/2013 123,555,xyz 1, 2.33,3/4/2013 123,555,xyz 1, 2.34,3/5/2013 123,555,xyz 1, 2.34,3/6/2013 123,555,xyz 1, 2.34,3/7/2013 123,555,xyz 1, 2.34,3/8/2013 . .
In [2]:
# load the data
t="""UNITID,COMPETITORID,COMPETORNAME,PRICE,DATECHANGE
123,555,xyz 1, 2.33,3/3/2013
123,555,xyz 1, 2.34,3/5/2013
123,555,xyz 1, 2.24,3/15/2013
123,666,xyz 2, 4.24,2/15/2013
123,666,xyz 2, 4.44,3/15/2013
123,666,xyz 2, 1.44,3/25/2013
223,777,xyz 3, 2.44,3/25/2013
223,777,xyz 3, 2.54,3/28/2013
223,777,xyz 3, 1.54,3/29/2013"""
df=pd.read_csv(io.StringIO(t), parse_dates=['DATECHANGE'])
In [7]:
df.set_index('DATECHANGE').resample('D', fill_method='ffill').reset_index()
Out[7]:
DATECHANGE UNITID COMPETITORID PRICE
0 2013-02-15 123 666.0 4.24
1 2013-02-16 123 666.0 4.24
2 2013-02-17 123 666.0 4.24
3 2013-02-18 123 666.0 4.24
4 2013-02-19 123 666.0 4.24
5 2013-02-20 123 666.0 4.24
6 2013-02-21 123 666.0 4.24
7 2013-02-22 123 666.0 4.24
8 2013-02-23 123 666.0 4.24
9 2013-02-24 123 666.0 4.24
10 2013-02-25 123 666.0 4.24
11 2013-02-26 123 666.0 4.24
12 2013-02-27 123 666.0 4.24
13 2013-02-28 123 666.0 4.24
14 2013-03-01 123 666.0 4.24
15 2013-03-02 123 666.0 4.24
16 2013-03-03 123 555.0 2.33
17 2013-03-04 123 555.0 2.33
18 2013-03-05 123 555.0 2.34
19 2013-03-06 123 555.0 2.34
20 2013-03-07 123 555.0 2.34
21 2013-03-08 123 555.0 2.34
22 2013-03-09 123 555.0 2.34
23 2013-03-10 123 555.0 2.34
24 2013-03-11 123 555.0 2.34
25 2013-03-12 123 555.0 2.34
26 2013-03-13 123 555.0 2.34
27 2013-03-14 123 555.0 2.34
28 2013-03-15 123 610.5 3.34
29 2013-03-16 123 610.5 3.34
30 2013-03-17 123 610.5 3.34
31 2013-03-18 123 610.5 3.34
32 2013-03-19 123 610.5 3.34
33 2013-03-20 123 610.5 3.34
34 2013-03-21 123 610.5 3.34
35 2013-03-22 123 610.5 3.34
36 2013-03-23 123 610.5 3.34
37 2013-03-24 123 610.5 3.34
38 2013-03-25 173 721.5 1.94
39 2013-03-26 173 721.5 1.94
40 2013-03-27 173 721.5 1.94
41 2013-03-28 223 777.0 2.54
42 2013-03-29 223 777.0 1.54