使用 pandas 在数据框的末尾追加 1 个系列(列)

append 1 Series (column) at the end of a dataframe with pandas

我正在使用 python/pandas 在笔记本上工作,并且我有:

这可能非常简单,但我试图水平追加或连接,但我最终得到了尺寸奇怪的数据框,在最好的情况下,我得到了一个包含更多行的 df(20551 行 × 20565 列,或 20551行 × 19 列,全是 NaN)

编辑: 我试过了:

pd.concat([X,y], axis=1)
X.append(other=y)
dfsv=[X,y]
pd.concat([X,y], axis=1, join='outer', ignore_index=False)
X.append(y, ignore_index=True)

有什么想法吗?

干杯!

如果 X 和 Y 具有相同的索引:

pd.concat([X, Y], axis=1)

如果X和Y有不同的索引,你可以试试:

X.append(Y, ignore_index=True)

您可以追加或反对。重要的是将轴指定为列

>>> X = pd.concat([X,Y], axis=1)

要将系列作为列附加到数据框,系列必须有一个名称,该名称将用作列名称。同时,Series的索引需要和dataframe的索引匹配。因此,您可以这样做:

y2 = pd.Series(y.values, name='y', index=X.index)
X.join(y2)

在这里,我们通过定义一个 Series y2 并采用 Series y 的值,为其指定列名称 y 并将其索引设置为与数据框相同 X。然后,我们可以用.join()X的末尾加入y2

编辑

另一个更简单的解决方案:

X['y'] = y.values