2024-09-28 01:28:30 发布
网友
如何为条件
我有一个像下面这样的数据帧。我想知道如何根据数据帧中的max-min日期来填充缺失的日期。在
Day Movie Rating 2017-01-01 GreatGatsby 5 2017-01-02 TopGun 5 2017-01-03 Deadpool 1 2017-01-10 PlanetOfApes 2
我怎么能做一些东西来填补缺失的日期像
使用resample+first/last/min/max:
resample
first
last
min
max
df.set_index('Day').resample('1D').first().fillna(0).reset_index() Day Movie Rating 0 2017-01-01 GreatGatsby 5.0 1 2017-01-02 TopGun 5.0 2 2017-01-03 Deadpool 1.0 3 2017-01-04 0 0.0 4 2017-01-05 0 0.0 5 2017-01-06 0 0.0 6 2017-01-07 0 0.0 7 2017-01-08 0 0.0 8 2017-01-09 0 0.0 9 2017-01-10 PlanetOfApes 2.0
如果Day不是datetime列,请先使用pd.to_datetime对其进行转换:
Day
datetime
pd.to_datetime
文asfreq备选方案:
asfreq
df.set_index('Day').asfreq('D').fillna(0).reset_index() Day Movie Rating 0 2017-01-01 GreatGatsby 5.0 1 2017-01-02 TopGun 5.0 2 2017-01-03 Deadpool 1.0 3 2017-01-04 0 0.0 4 2017-01-05 0 0.0 5 2017-01-06 0 0.0 6 2017-01-07 0 0.0 7 2017-01-08 0 0.0 8 2017-01-09 0 0.0 9 2017-01-10 PlanetOfApes 2.0
我相信你需要^{}:
df = (df.set_index('Day') .reindex(pd.date_range(df['Day'].min(), df['Day'].max()), fill_value=0) .reset_index()) print (df) index Movie Rating 0 2017-01-01 GreatGatsby 5 1 2017-01-02 TopGun 5 2 2017-01-03 Deadpool 1 3 2017-01-04 0 0 4 2017-01-05 0 0 5 2017-01-06 0 0 6 2017-01-07 0 0 7 2017-01-08 0 0 8 2017-01-09 0 0 9 2017-01-10 PlanetOfApes 2
使用
resample
+first
/last
/min
/max
:如果
^{pr2}$Day
不是datetime
列,请先使用pd.to_datetime
对其进行转换:文
asfreq
备选方案:我相信你需要^{} :
相关问题 更多 >
编程相关推荐