簡體   English   中英

從numpy數組創建熊貓數據框

[英]Create pandas dataframe from numpy array

要從numpy創建一個熊貓數據框,我可以使用:

columns = ['1','2']
data = np.array([[1,2] , [1,5] , [2,3]])
df_1 = pd.DataFrame(data,columns=columns)
df_1

如果我改為使用:

columns = ['1','2']
data = np.array([[1,2,2] , [1,5,3]])
df_1 = pd.DataFrame(data,columns=columns)
df_1

其中每個數組都是一列數據。 但這會引發錯誤:

ValueError: Wrong number of items passed 3, placement implies 2

熊貓是否支持這種數據格式,或者我必須使用示例1中的格式嗎?

您需要轉置numpy數組:

df_1 = pd.DataFrame(data.T, columns=columns)

要了解為什么這樣做是必要的,請考慮數組的形狀:

print(data.shape)

(2, 3)

形狀元組中的第二個數字或數組中的列數必須等於數據框中的列數。

當我們對數組進行轉置時,將對數組的數據和形狀進行轉置,從而使其能夠傳遞到具有兩列的數據幀中:

print(data.T.shape)

(3, 2)

print(data.T)

[[1 1]
 [2 5]
 [2 3]]

DataFrame是從數組中固有地按此順序創建的。

無論哪種方式,您都需要轉置一些東西。

一種選擇是指定index = columns然后轉置整個對象。 這將為您提供相同的輸出。

 columns = ['1','2']
 data = np.array([[1,2,2] , [1,5,3]])
 df_1 = pd.DataFrame(data, index=columns).T
 df_1

如上所述,傳遞data.T也是完全可以接受的(假設數據是ndarray類型)。

在第二種情況下,您可以使用:

df_1 = pd.DataFrame(dict(zip(columns, data)))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM