天天看點

59.時間序列資料彙總

作者:李光朱

案例導入

如下表,将第1列作為索引列,引擎為”openpyxl”。請彙總每一天的測量值。添加代碼注釋。

時間 測量值
2022-03-18 00:00:00 5
2022-03-18 01:00:00 9
2022-03-18 02:00:00 6
2022-03-18 03:00:00 9
2022-03-18 04:00:00 8
2022-03-18 05:00:00 10
2022-03-18 06:00:00 4
2022-03-18 07:00:00 3
2022-03-18 08:00:00 6
2022-03-18 09:00:00 3
2022-03-18 10:00:00 1
2022-03-18 11:00:00 6
2022-03-18 12:00:00 7
2022-03-18 13:00:00 4
2022-03-18 14:00:00 1
2022-03-18 15:00:00 7
2022-03-18 16:00:00 4
2022-03-18 17:00:00 10
2022-03-18 18:00:00 8
2022-03-18 19:00:00 6
2022-03-18 20:00:00 6
2022-03-18 21:00:00 1
2022-03-18 22:00:00 5
2022-03-18 23:00:00 4
2022-03-19 00:00:00 5
2022-03-19 01:00:00 5
2022-03-19 02:00:00 4
2022-03-19 03:00:00 1
2022-03-19 04:00:00 8
2022-03-19 05:00:00 6
2022-03-19 06:00:00 1
2022-03-19 07:00:00 2
2022-03-19 08:00:00 8
2022-03-19 09:00:00 4
2022-03-19 10:00:00 9
2022-03-19 11:00:00 1
2022-03-19 12:00:00 8
2022-03-19 13:00:00 2
2022-03-19 14:00:00 5
2022-03-19 15:00:00 2
2022-03-19 16:00:00 6
2022-03-19 17:00:00 9
2022-03-19 18:00:00 6
2022-03-19 19:00:00 2
2022-03-19 20:00:00 1
2022-03-19 21:00:00 8
2022-03-19 22:00:00 1
2022-03-19 23:00:00 2
2022-03-20 00:00:00 6
2022-03-20 01:00:00 6
2022-03-20 02:00:00 10
2022-03-20 03:00:00 9
2022-03-20 04:00:00 6
2022-03-20 05:00:00 7
2022-03-20 06:00:00 8
2022-03-20 07:00:00 10
2022-03-20 08:00:00 1
2022-03-20 09:00:00 3
2022-03-20 10:00:00 1
2022-03-20 11:00:00 3
2022-03-20 12:00:00 2
2022-03-20 13:00:00 10
2022-03-20 14:00:00 9
2022-03-20 15:00:00 5
2022-03-20 16:00:00 2
2022-03-20 17:00:00 4
2022-03-20 18:00:00 10
2022-03-20 19:00:00 7
2022-03-20 20:00:00 6
2022-03-20 21:00:00 10
2022-03-20 22:00:00 4
2022-03-20 23:00:00 7
2022-03-21 00:00:00 7
2022-03-21 01:00:00 9
2022-03-21 02:00:00 8
2022-03-21 03:00:00 6
2022-03-21 04:00:00 2
2022-03-21 05:00:00 6
2022-03-21 06:00:00 10
2022-03-21 07:00:00 3
2022-03-21 08:00:00 2
2022-03-21 09:00:00 1
2022-03-21 10:00:00 7
2022-03-21 11:00:00 2
2022-03-21 12:00:00 9
2022-03-21 13:00:00 1
2022-03-21 14:00:00 7
2022-03-21 15:00:00 2
2022-03-21 16:00:00 2
2022-03-21 17:00:00 10
2022-03-21 18:00:00 5
2022-03-21 19:00:00 5
2022-03-21 20:00:00 4
2022-03-21 21:00:00 6
2022-03-21 22:00:00 4
2022-03-21 23:00:00 1
2022-03-22 00:00:00 5
2022-03-22 01:00:00 10
2022-03-22 02:00:00 6
2022-03-22 03:00:00 9

文心一言提示詞

打開百度“文心一言”,輸入提示詞:“你是pandas專家。檔案路徑為:D:/Samples/時間序列.xlsx。用pandas導入Excel檔案中第1個工作表中的資料,将第1列作為索引列,引擎為”openpyxl”。請彙總每一天的測量值。添加代碼注釋。”

顯示結果如下:

首先,你需要確定你已經安裝了pandas庫以及openpyxl引擎(用于讀取.xlsx檔案)。如果尚未安裝,你可以使用pip來安裝它們:

pip install pandas openpyxl           

接下來,你可以使用下面的Python代碼來完成你的需求:

import pandas as pd

# 檔案路徑
file_path = 'D:/Samples/時間序列.xlsx'

# 讀取Excel檔案中第1個工作表的資料,第1列作為索引列,使用'openpyxl'作為引擎
# parse_dates參數用于指定哪一列或多列應該被解析為日期,這裡假設日期在第一行且列名為'Date'
# 如果你的日期列沒有特定的列名,而是直接作為第一列(即索引列),則不需要指定parse_dates
df = pd.read_excel(file_path, sheet_name=0, index_col=0, engine='openpyxl')

# 假設'Value'是你要彙總的測量值的列名
# 如果你的列名不同,請替換為實際的列名
# 使用resample方法按天彙總資料,這裡使用'sum'作為聚合函數
# 如果你的資料已經是按天排序的,可以省略base參數
# 如果你的索引不是日期時間類型,你需要先将其轉換為日期時間類型
df.index = pd.to_datetime(df.index)  # 確定索引是日期時間類型
daily_summary = df['Value'].resample('D').sum()  # 假設你的測量值在'Value'列中

# 輸出每天的測量值彙總
print(daily_summary)

# 如果需要将結果儲存回Excel檔案,可以使用下面的代碼
output_path = 'D:/Samples/時間序列_每日彙總.xlsx'
daily_summary.to_excel(output_path)           

注意:

  1. 在上面的代碼中,我假設你的日期列是索引列,并且你的測量值在名為'Value'的列中。你需要根據你的實際Excel檔案結構來修改這些參數。
  2. 如果你的日期列不是索引列,而是普通的資料列,你需要先将其設定為索引列,或者在使用resample方法時指定on參數為日期列的列名。
  3. 如果你的日期列沒有特定的列名(例如,它直接作為第一列,并且你想将其作為索引),那麼index_col=0已經足夠了,你不需要額外指定parse_dates。
  4. resample('D')會按照天數重新采樣資料。這要求你的索引是日期時間類型。如果不是,你需要先将其轉換為日期時間類型,如上面的代碼所示。
  5. 我使用了sum作為聚合函數來彙總測量值。如果你的需求是求平均值、最大值、最小值等,你可以相應地更改聚合函數。

Python運作結果

59.時間序列資料彙總

圖1.Python運作結果

文心一言給的代碼示例中的‘value’需要根據實際情況改為‘測量值’。