[英]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.