我有一個資料框,其中日期作為第一列,時間作為其他列的名稱。
| 日期 | 13:00 | 14:00 | 15:00 | 16:00 | ... |
|---|---|---|---|---|---|
| 2022-01-01 | 乙 | R | 米 | 米 | ... |
| 2022-01-02 | 乙 | 乙 | 乙 | 米 | ... |
| 2022-01-03 | R | 乙 | 乙 | 米 | ... |
如何將該矩陣轉換為日期時間時間序列?我的目標是這樣的:
| 日期 | 資料 |
|---|---|
| 2022-01-01 13:00 | 乙 |
| 2022-01-01 14:00 | R |
| 2022-01-01 15:00 | 米 |
| 2022-01-01 16:00 | 米 |
| ... | ... |
我認為可以使用樞軸來完成。我真的很感激你能給我的任何幫助。提前致謝!!
uj5u.com熱心網友回復:
替代:
df = pd.DataFrame({'Date': ['2022-01-01', '2022-01-02', '2022-01-03'], '13:00': ['B', 'B', 'R'], '14:00': ['R', 'B', 'R'], '15:00': ['M', 'B', 'B'], '16:00': ['M', 'M', 'M']})
df = df.melt(id_vars='Date', var_name='Time', value_name='Data')
df['Date'] = df['Date'] ' ' df['Time']
df = df[['Date', 'Data']]
uj5u.com熱心網友回復:
試試.set_index/ .stack。剩下的只是將字串轉換為 DateTime:
df = df.set_index("Date").stack().reset_index()
df["Date"] = pd.to_datetime(df["Date"] " " df["level_1"])
df = df.rename(columns={0: "Data"})
print(df[["Date", "Data"]])
印刷:
Date Data
0 2022-01-01 13:00:00 B
1 2022-01-01 14:00:00 R
2 2022-01-01 15:00:00 M
3 2022-01-01 16:00:00 M
4 2022-01-02 13:00:00 B
5 2022-01-02 14:00:00 B
6 2022-01-02 15:00:00 B
7 2022-01-02 16:00:00 M
8 2022-01-03 13:00:00 R
9 2022-01-03 14:00:00 B
10 2022-01-03 15:00:00 B
11 2022-01-03 16:00:00 M
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/505734.html
上一篇:將自定義函式應用于groupby物件保留groupby列
下一篇:如何改變x_i向量的值?
