Python PANDAS(在PANDAS中对dataframe中的数据进行日期时间和ffill()转换)
我有一个如下的数据框架,它只有工作日数据(即。 不包括周末) 我必须在此数据帧上执行两个操作1)填充 缺少的时间序列(即2020-02-08和2020-02-09 2)将被转发 填写前一日期的整个数据块 所以我的输出数据帧应该是这样的 用于计数器,该计数器用于多索引,重塑为,添加所有缺少的日期时间,然后重塑为,按第一个和第二个移除计数器级别将Python PANDAS(在PANDAS中对dataframe中的数据进行日期时间和ffill()转换),python,pandas,date,time-series,Python,Pandas,Date,Time Series,我有一个如下的数据框架,它只有工作日数据(即。 不包括周末) 我必须在此数据帧上执行两个操作1)填充 缺少的时间序列(即2020-02-08和2020-02-09 2)将被转发 填写前一日期的整个数据块 所以我的输出数据帧应该是这样的 用于计数器,该计数器用于多索引,重塑为,添加所有缺少的日期时间,然后重塑为,按第一个和第二个移除计数器级别将生效日期转换为列: df['effective_date'] = pd.to_datetime(df['effective_date']) df1 = (
生效日期
转换为列:
df['effective_date'] = pd.to_datetime(df['effective_date'])
df1 = (df.set_index(['effective_date',df.groupby('effective_date').cumcount()])
.unstack()
.asfreq('D', method='ffill')
.stack()
.reset_index(level=1, drop=True)
.reset_index())
在这个问题上需要你的帮助
effective_date,ent_id
> 2020-02-03,349114.0 2020-02-03,1559910.0 2020-02-03,23431626.0
> 2020-02-03,15747736.0 2020-02-04,21349114.0 2020-02-04,15559910.0
> 2020-02-04,323431626.0 2020-02-04,5747736.0 2020-02-05,76349114.0
> 2020-02-05,5459910.0 2020-02-05,89431626.0 2020-02-05,37747736.0
> 2020-02-06,10349114.0 2020-02-06,26559910.0 2020-02-06,35431626.0
> 2020-02-06,88747736.0 2020-02-07,34913414.0 2020-02-07,15591910.0
> 2020-02-07,234318626.0 2020-02-07,1574436.0 2020-02-08,34913414.0
> 2020-02-08,15591910.0 2020-02-08,234318626.0 2020-02-08,1574436.0
> 2020-02-09,34913414.0 2020-02-09,15591910.0 2020-02-09,234318626.0
> 2020-02-09,1574436.0 2020-02-10,139114.0 2020-02-10,4359910.0
> 2020-02-10,43431626.0 2020-02-10,10947736.0
df['effective_date'] = pd.to_datetime(df['effective_date'])
df1 = (df.set_index(['effective_date',df.groupby('effective_date').cumcount()])
.unstack()
.asfreq('D', method='ffill')
.stack()
.reset_index(level=1, drop=True)
.reset_index())
print (df1)
effective_date ent_id
0 2020-02-03 349114.0
1 2020-02-03 1559910.0
2 2020-02-03 23431626.0
3 2020-02-03 15747736.0
4 2020-02-04 21349114.0
5 2020-02-04 15559910.0
6 2020-02-04 323431626.0
7 2020-02-04 5747736.0
8 2020-02-05 76349114.0
9 2020-02-05 5459910.0
10 2020-02-05 89431626.0
11 2020-02-05 37747736.0
12 2020-02-06 10349114.0
13 2020-02-06 26559910.0
14 2020-02-06 35431626.0
15 2020-02-06 88747736.0
16 2020-02-07 34913414.0
17 2020-02-07 15591910.0
18 2020-02-07 234318626.0
19 2020-02-07 1574436.0
20 2020-02-08 34913414.0
21 2020-02-08 15591910.0
22 2020-02-08 234318626.0
23 2020-02-08 1574436.0
24 2020-02-09 34913414.0
25 2020-02-09 15591910.0
26 2020-02-09 234318626.0
27 2020-02-09 1574436.0
28 2020-02-10 139114.0
29 2020-02-10 4359910.0
30 2020-02-10 43431626.0
31 2020-02-10 10947736.0