我有一個串列(region_props_list),大小 = 37,它具有如下所示的 2D numpy 陣列的值。(因此, region_props_list[0] 是一個 numpy 陣列。)
我想垂直堆疊所有資料并將其作為一個新的 Pandas DataFrame,其形狀為 ($$, 7)
如何使用 for 回圈垂直堆疊資料?有人可以給我建議嗎?

uj5u.com熱心網友回復:
你不需要 for 回圈。您可以np.vstack改用:
import numpy as np
lst = [np.array([[1, 2], [3, 4]]), np.array([[5, 6]]), np.array([[7, 8], [9, 10]])]
a = np.vstack(lst)
print(a)
# [[ 1 2]
# [ 3 4]
# [ 5 6]
# [ 7 8]
# [ 9 10]]
如果您的目標是構建一個資料幀,那么您可以使用itertools.chainwith pd.DataFrame.from_records(甚至不制作 v-stacked 陣列,因此我相信它是記憶體高效的):
import numpy as np
import pandas as pd
import itertools
lst = [np.array([[1, 2], [3, 4]]), np.array([[5, 6]]), np.array([[7, 8], [9, 10]])]
df = pd.DataFrame.from_records(itertools.chain.from_iterable(lst))
print(df)
# 0 1
# 0 1 2
# 1 3 4
# 2 5 6
# 3 7 8
# 4 9 10
PS請不要張貼截圖。制作一個人們可以輕松處理的可復制和粘貼的最小示例。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/357319.html
上一篇:Xcode快捷鍵
