我需要管理如下組織的多個資料:
插槽1
| 時間戳 | 值1 | 值2 | 值3 | 值4 |
|---|---|---|---|---|
| xxxxxxxxx | 啊啊啊啊 | bbbbbb | cccc | 滴滴滴 |
| ………… | ...... | ...... | ...... | ...... |
| ………… | ...... | ...... | ...... | ...... |
| ………… | ...... | ...... | ...... | ...... |
| ………… | ...... | ...... | ...... | ...... |
| xxxxxxxxx | qqqqqq | 嗚嗚嗚 | sssss | 滴滴 |
插槽2
| 時間戳 | 值1 | 值2 | 值3 | 值4 |
|---|---|---|---|---|
| xxxxxxxxx | 啊啊啊啊 | bbbbbb | cccc | 滴滴滴 |
| ………… | ...... | ...... | ...... | ...... |
| ………… | ...... | ...... | ...... | ...... |
| ………… | ...... | ...... | ...... | ...... |
| ………… | ...... | ...... | ...... | ...... |
| xxxxxxxxx | qqqqqq | 嗚嗚嗚 | sssss | 滴滴 |
......
插槽 'n'
| 時間戳 | 值1 | 值2 | 值3 | 值4 |
|---|---|---|---|---|
| xxxxxxxxx | 啊啊啊啊 | bbbbbb | cccc | 滴滴滴 |
| ………… | ...... | ...... | ...... | ...... |
| ………… | ...... | ...... | ...... | ...... |
| ………… | ...... | ...... | ...... | ...... |
| ………… | ...... | ...... | ...... | ...... |
| xxxxxxxxx | qqqqqq | 嗚嗚嗚 | sssss | 滴滴 |
資料結構不應是 Pandas Dataframe,而最好是不使用外部庫的本機結構。
每個單獨的 Slot 應該有一個固定的長度,新的資料(比如一個新行)應該用 FIFO 邏輯處理。所以最后一個資料應該被附加在最后,第一個應該被提取,保持資料結構的總長度固定。
最后但并非最不重要的一點是,我需要為每個插槽添加一個額外的列來執行一種計算,例如
“列添加”=(“值1” “值2”)/(“值3” “值4”)
謝謝大家會在這方面幫助我
uj5u.com熱心網友回復:
除了問題的最后一部分,您可以使用以下類創建一個槽物件,您可以在其中按照您描述的方式存盤資料。您可以根據需要創建任意數量的插槽并將它們存盤在陣列中以實作您想要的。
class Slot:
maxrowlen = 5 #the maximum number of row you want in one slot
coredict = {"TimeStamp":[],"Value1":[],"Value2":[],"Value3":[],"Value4":[]}
def addrow(self,timestamp, value1, value2, value3, value4):
if len(self.coredict["TimeStamp"])<self.maxrowlen:
self.coredict["TimeStamp"].append(timestamp)
self.coredict["Value1"].append(value1)
self.coredict["Value2"].append(value2)
self.coredict["Value3"].append(value3)
self.coredict["Value4"].append(value4)
print("Data successfully added to slot")
else:
for i in range(len(self.coredict["TimeStamp"])-1):
self.coredict["TimeStamp"][i]=self.coredict["TimeStamp"][i 1]
self.coredict["Value1"][i]=self.coredict["Value1"][i 1]
self.coredict["Value2"][i]=self.coredict["Value2"][i 1]
self.coredict["Value3"][i]=self.coredict["Value3"][i 1]
self.coredict["Value4"][i]=self.coredict["Value4"][i 1]
index = self.maxrowlen-1
self.coredict["TimeStamp"][index] = timestamp
self.coredict["Value1"][index]=value1
self.coredict["Value2"][index]=value2
self.coredict["Value3"][index]=value3
self.coredict["Value4"][index]=value4
def getfirst(self):
index = 0
for value in self.coredict.values():
print(" | " str(value[index]) " | ", end="")
print("")
def printall(self):
for i in range(len(self.coredict["TimeStamp"])):
index = i
for value in self.coredict.values():
print(" | " str(value[index]) " | ", end="")
print("")
Slot 類中有三種方法:
1. addrow()-在槽的末尾添加一行(根據 FIFO)
2. getfirst()- 列印添加的第一行的資料(根據 FIFO)
3. printall()- 列印所有插槽中的資料
這個類可以按照您需要的方式存盤資料。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/400151.html
上一篇:將帶有負數和正數的串列拆分為字典
下一篇:從字典或元組中找出最大值
