簡體   English   中英

來自熊貓數據框的多索引的日期索引

[英]date index from from multiindex for pandas dataframe

我有一個帶有 multiindex 的數據框,我想將其轉換為date()索引。

這是我擁有的數據幀類型的示例仿真:

i = pd.date_range('01-01-2016', '01-01-2020')
x = pd.DataFrame(index = i, data=np.random.randint(0, 10, len(i)))
x = x.groupby(by = [x.index.year, x.index.month]).sum()
print(x)

我嘗試通過以下方式將其轉換為日期索引:

def to_date(ind):
    return pd.to_datetime(str(ind[0]) + '/' + str(ind[1]), format="%Y/%m").date()

# flattening the multiindex to tuples to later reset the index
x.set_axis(x.index.to_flat_index(), axis=0, inplace = True)    

x = x.rename(index = to_date)

x.set_axis(pd.DatetimeIndex(x.index), axis=0, inplace=True)

但它很慢。 我認為問題出在pd.to_datetime(str(ind[0]) + '/' + str(ind[1]), format="%Y/%m").date()行中。 非常感謝任何使這更快的想法。

你可以只使用:

x.index=pd.to_datetime([f"{a}-{b}" for a,b in x.index],format='%Y-%m')
print(x)

            0
2016-01-01  162
2016-02-01  119
2016-03-01  148
2016-04-01  125
2016-05-01  132
2016-06-01  144
2016-07-01  157
2016-08-01  141
2016-09-01  138
2016-10-01  168
2016-11-01  140
2016-12-01  137
2017-01-01  113
2017-02-01  113
2017-03-01  155
..........
..........
......

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM