簡體   English   中英

Python / Pandas-使用每周列准備時間序列的源數據

[英]Python/Pandas - Preparing Source Data with Weekly Columns to Time Series

我試圖用谷歌搜索這樣的問題: 如何轉換每周數據以在熊貓中進行時間序列分析?

沒有結果直接談論從每天到每周的數據重新采樣或類似的事情,就很難搜索這個問題。

我的問題確實更多與已經以每周數字數據形式存在的源數據有關,但是沒有像日期時間戳這樣的時間或日期數據。

格式如下:(請使用豎線對每一行進行邏輯對齊。)

Unique_Entity(string) | WK1(float64) | WK2(float64) | WK3(float64)| ...
UE1 | 123 | 234 | 345 | ...
UE2 | 456 | 567 | 678 | ...
UE3 | 789 | 890 | 901 | ...
... | ... | ... | ... | ...

另外,WK1是“動態”描述,以指示數值數據是上周,WK2是兩周前,WK3是三周前,依此類推。 因此,下周WK1的數據將轉移到WK2,並將新數據添加到WK1。 希望從我的描述中講得通。

以此作為源數據格式,我想使用熊貓和其他python模塊提供的時間序列工具分析此實時數據。 他們中的許多人都使用顯式的日期列來獲取其余的分析結果。

總結問題: 如何轉換或准備我的源數據,以便可以輕松使用這些工具? (除了下面我的幼稚解決方案。)

天真的解決方案:我可以標記每周倒退的星期一(或星期五)的日期。 (一個使用今天的日期來生成每個星期一(或星期五)回溯的日期的函數。)然后,我可以指出那些時間序列工具以使用這些日期並將其重新采樣為周。

這是假設我沒有旋轉水平標題,以便WK1將與上周一(或周五)的日期等一起加入。

創建一個今天結束的DatetimeIndex,將其倒數1周,並將其分配給各列:

df.columns = pd.date_range(end=datetime.date.today(), periods=len(df.columns),
                           freq='1W-MON')[::-1]

它給:

     2019-06-10  2019-06-03  2019-05-27
UE1         123         234         345
UE2         456         567         678
UE3         789         890         901

如果需要,轉置結果。

暫無
暫無

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

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