使用 pandas 在数据框的末尾追加 1 个系列(列)
append 1 Series (column) at the end of a dataframe with pandas
我正在使用 python/pandas 在笔记本上工作,并且我有:
- 一个Dataframe,X(大小20550行×18列)和一个
- 一个系列,一列,y(大小20550)
- 我想合并(或连接、追加!)'y' 列在 'X'
末尾
- 并且有一个 X_total,大小为 20550 行,19 列
这可能非常简单,但我试图水平追加或连接,但我最终得到了尺寸奇怪的数据框,在最好的情况下,我得到了一个包含更多行的 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
我正在使用 python/pandas 在笔记本上工作,并且我有:
- 一个Dataframe,X(大小20550行×18列)和一个
- 一个系列,一列,y(大小20550)
- 我想合并(或连接、追加!)'y' 列在 'X' 末尾
- 并且有一个 X_total,大小为 20550 行,19 列
这可能非常简单,但我试图水平追加或连接,但我最终得到了尺寸奇怪的数据框,在最好的情况下,我得到了一个包含更多行的 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