2 回答

TA貢獻2021條經驗 獲得超8個贊
您可以使用Postgres上的string_agg或MySQL上的GROUP_CONCAT來實現。
輸出將類似于
| date | numbers |
|------|---------------|
| 1 | 33.1,4513,... |
| 2 | 24.2,53.4,... |
| 3 | 14.1,24.8,... |
和查詢
SELECT date, STRING_AGG(number) numbers
FROM MyTable
GROUP BY date

TA貢獻1827條經驗 獲得超8個贊
我認為我們可以通過 pandas 交叉表功能的一些幫助來做到這一點,
我的假設是您需要將數字列作為整數而不是字符串(如我的評論解決方案中所示)
如果日期列中有任何字符串,它將被注冊為對象,因此讀取為字符串。
import pandas as pd
df = pd.read_clipbard(sep='\s+')
print(df)
date number system_id
0 1 33.10 1
1 2 24.20 1
2 3 14.10 1
3 4 15.50 1
4 [...] 1113.00 1
5 1 4513.00 2
6 2 53.40 2
7 3 24.80 2
8 4 13.12 2
9 [...] 3333.00 2
然后我們可以將它傳遞給交叉表,同時傳遞system_id列參數
js_object = (pd.crosstab(df.date, df.system_id,
values=df.number,aggfunc='first').reset_index().values.tolist())
print(js_object)
[['1', 33.1, 4513.0],
['2', 24.2, 53.4],
['3', 14.1, 24.8],
['4', 15.5, 13.12],
['[...]', 1113.0, 3333.0]]
希望有幫助!
添加回答
舉報