我有ser_apl熊猫系列,具有两级多索引:
Date Team
2013-01-31 Man Utd 11
2013-02-28 Man Utd 12
2013-03-29 Man Utd 13
2013-04-30 Man Utd 14
2013-05-31 Man Utd 15
2013-06-28 Man Utd 16
2013-07-31 Man Utd 17
2013-08-30 Man Utd 18
2013-09-30 Man Utd 19
2013-10-31 Man Utd 20
2013-11-29 Man Utd 21
2013-12-31 Man Utd 22
2013-07-31 Liverpool 37
2013-08-30 Liverpool 38
2013-09-30 Liverpool 39
2013-10-31 Liverpool 40
2013-11-29 Liverpool 41
2013-12-31 Liverpool 42
2013-01-31 Chelsea 51
2013-02-28 Chelsea 52
2013-03-29 Chelsea 53
2013-04-30 Chelsea 54
2013-05-31 Chelsea 55
2013-06-28 Chelsea 56
Name: Result, dtype: int64
我需要为所有团队重新编制日期索引,以便接收:
Date Team
2013-01-31 Chelsea 51.0
2013-02-28 Chelsea 52.0
2013-03-29 Chelsea 53.0
2013-04-30 Chelsea 54.0
2013-05-31 Chelsea 55.0
2013-06-28 Chelsea 56.0
2013-07-31 Chelsea NaN
2013-08-30 Chelsea NaN
2013-09-30 Chelsea NaN
2013-10-31 Chelsea NaN
2013-11-29 Chelsea NaN
2013-12-31 Chelsea NaN
2013-01-31 Liverpool NaN
2013-02-28 Liverpool NaN
2013-03-29 Liverpool NaN
2013-04-30 Liverpool NaN
2013-05-31 Liverpool NaN
2013-06-28 Liverpool NaN
2013-07-31 Liverpool 37.0
2013-08-30 Liverpool 38.0
2013-09-30 Liverpool 39.0
2013-10-31 Liverpool 40.0
2013-11-29 Liverpool 41.0
2013-12-31 Liverpool 42.0
2013-01-31 Man Utd 11.0
2013-02-28 Man Utd 12.0
2013-03-29 Man Utd 13.0
2013-04-30 Man Utd 14.0
2013-05-31 Man Utd 15.0
2013-06-28 Man Utd 16.0
2013-07-31 Man Utd 17.0
2013-08-30 Man Utd 18.0
2013-09-30 Man Utd 19.0
2013-10-31 Man Utd 20.0
2013-11-29 Man Utd 21.0
2013-12-31 Man Utd 22.0
dtype: float64
首先,我准备了索引:
idx_level_date = ser_apl.index.get_level_values('Date').unique()
然后我尝试了几种方法:
ser_apl.reindex(idx_level_date, level = 'Date')
作为替代方案:
ser_apl.groupby('Team').apply(lambda iter_team: iter_team.reindex(idx_level_date, level = 'Date'))
两次都没有成功: 结果与原始SERU apl相同
所以我需要帮助重新编制索引
另外,我在这里找到了另一种取消堆栈/堆栈的技巧:Filling in date gaps in MultiIndex Pandas Dataframe
但问题是为什么我不能用合适的方法做同样的事情
通过^{} 创建所有可能的日期时间并传递给^{} ,如有必要,通过^{} 更改顺序:
相关问题 更多 >
编程相关推荐