從保存在 DataFrame 中的資料,我必須重新創建下面的格式(即 list(tuple(tuples))),所以它應該具有與以下相同的結構:
coord = [((9, 9), (10, 6), (11, 3),(12, 6))]
到目前為止,我已經能夠通過以下代碼從 DataFrame 創建元組:
coord_y = tuple(data_df['data'].iloc[i:])
coord_x = tuple(data_df['data'].index.values[i:])
coord = list(zip(coord_x, coord_y)) # stack into (x,y) coord
產生:
[(9, 9), (10, 6), (11, 3), (12, 6)]
這是錯誤的,因為它缺少“外部”元組,應該如下所示:
[((9, 9), (10, 6), (11, 3),(12, 6))]
我究竟做錯了什么?
uj5u.com熱心網友回復:
tuple()創建一個包含所有資料而不是 a 的元組list(),并且用括號[]創建一個包含一個元素的新串列 - 早期創建的元組:
coord = [tuple(zip(coord_x, coord_y))] # stack into (x,y) coord
uj5u.com熱心網友回復:
其中之一應該這樣做:
[(tuple(zip(coord_x, coord_y), ))]
或者
[(*zip(coord_x, coord_y), )]
uj5u.com熱心網友回復:
只需將您的拉鏈包裹在一個元組中。
coord_y = tuple(data_df['data'].iloc[int(time_steps[-1]-l-1):])
coord_x = tuple(data_df['data'].index.values[int(time_steps[-1]-l-1):])
coord = [tuple(zip(coord_x, coord_y))] # stack into (x,y) coord
uj5u.com熱心網友回復:
如果您的資料框是 df = pd.DataFrame({"data":[9,9,10,6,11,3,12,6]})
您可以使用itertools模塊:
from itertools import islice
import pandas as pd
def group_elements(lst, chunk_size):
lst = iter(lst)
return iter(lambda: tuple(islice(lst, chunk_size)), ())
df = pd.DataFrame({"data":[9,9,10,6,11,3,12,6]})
print([x for x in group_elements(df["data"],2)])
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/414117.html
標籤:
