簡體   English   中英

從 Python panda 中的兩列創建數據框時出錯

[英]Error when creating dataframe from two columns in Python panda

當我嘗試從兩列(即 pids 和 SalePrice)創建數據框時,出現錯誤“異常:數據必須是一維的”。 我認為錯誤即將到來,因為這兩個數據系列的格式不同,如下所示。 請幫助我如何使這些數據系列相同

ksubmission = pd.DataFrame({'Id':pids,'SalePrice':predictions_kaggle})

例外:數據必須是一維的

pids.shape

(1459,)

predicts_kaggle.shape

(1459, 1)

predicts_kaggle 采用以下格式

array([[115901.20520943],
       [144313.70246636],
       [165320.94012928],
       ...,
       [155759.14767572],
       [111175.64223766],
       [249104.99042467]])

而 pids 的格式如下

0       1461
1       1462
2       1463
3       1464
4       1465
        ... 
1454    2915
1455    2916
1456    2917
1457    2918
1458    2919
Name: Id, Length: 1459, dtype: int64

如果長度相同,我認為您需要這樣做:

import pandas as pd
import numpy as np
pd.DataFrame(predictions_kaggle, index=pids).reset_index().rename(columns={'index': 'Id', 0:'SalePrice'}) 

or

pd.DataFrame({'Id':pids,'SalePrice':np.ndarray.flatten(predictions_kaggle)}) 

這里的問題是您的predictions_kaggle數組不是一維數組,而是二維數組。 作為證明,一維數組的形狀應為(n,)形式(n,)但您有(n,1)表示數組的每一行都是數組內的單個值。 對此的快速解決方法是展平數組,這會將其變成一維數組:

ksubmission = pd.DataFrame({'Id':pids,'SalePrice':predictions_kaggle.flatten()})

希望這可以幫助。

暫無
暫無

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

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