1

我已经在看似很容易的事情上安静了一段时间。我想要的只是将一个 numpy 数组转换为一个系列,然后组合系列来制作一个数据框。我有两个 numpy 数组。

import numpy as np

rooms = 2*np.random.rand(100, 1) + 3
price = 265 + 6*rooms + abs(np.random.randn(100, 1))

我想将房间和价格转换为系列,然后将这两个系列组合成一个数据框来制作 lmplot

那么有人能告诉我该怎么做吗?谢谢。

4

2 回答 2

2

您可以使用ravel()将数组转换为一维数据:

pd.DataFrame({
     'rooms': rooms.ravel(),
    'price': price.ravel()
})
于 2020-07-20T08:57:05.630 回答
2

将数组直接传递给的问题pd.Series是维度:rooms并且price是二维形状的数组,(100,1)pd.Series需要一维数组。要重塑它们,您可以使用不同的方法,其中一种方法是.squeeze()

import pandas as pd
import numpy as np

rooms = 2*np.random.rand(100, 1) + 3
price = 265 + 6*rooms + abs(np.random.randn(100, 1))

rooms_series = pd.Series(rooms.squeeze())
price_series = pd.Series(price.squeeze())

现在要从系列转到数据框,您可以执行以下操作:

pd.DataFrame({'rooms': rooms_series,
              'price': price_series})

或直接来自 numpy 数组:

pd.DataFrame({'rooms': rooms.squeeze(),
              'price': price.squeeze()})
于 2020-07-20T09:05:12.157 回答