讓我們考慮一個包含每2010年1月的一個月中每天1列2個值的數據幀:Python中,熊貓:重新編制/切片數據幀重複的索引值
date_range = pd.date_range(dt(2010,1,1), dt(2010,1,31), freq='1D')
df = pd.DataFrame(data = np.random.rand(len(date_range),2), index = date_range)
與稀疏數據,另一個timeserie重複指數值:
observations = pd.DataFrame(data =np.random.rand(7,2), index = (dt(2010,1,12),
dt(2010,1,18), dt(2010,1,20), dt(2010,1,20), dt(2010,1,22), dt(2010,1,22),dt(2010,1,28)))
我分裂所述第一數據幀到df
5個DataFrames的列表,它們中的每含1周價值的數據從原始:df_weeks = [g for n, g in df.groupby(pd.TimeGrouper('W'))]
現在我想將第二個DataFrame的數據分割5周。即在那個特定情況下,這意味着結束於包含與df_weeks相同的時間範圍的5個DataFrame的變量obs_weeks,其中2個是空的。
我嘗試使用reindex
如在這樣一個問題:Python, Pandas: Use the GroupBy.groups description to apply it to another grouping
和期間:
p1 =[x.to_period() for x in list(df.groupby(pd.TimeGrouper('W')).groups.keys())]
p1 = sorted(p1)
dfs=[]
for p in p1:
dff = observations.truncate(p.start_time, p.end_time)
dfs.append(dff)
(參照這樣的問題:Python, Pandas: Boolean Indexing Comparing DateTimeIndex to Period)
的問題是,如果在索引中的某些值的observations
是重複的(並且情況是這樣)沒有那些方法功能。我也嘗試將observations
的索引更改爲普通列,並對該列進行切片,但我也收到了錯誤消息。